我有一个包含一些长varchar的数据库,我想搜索包含多个参数的特定行。
假设我有一个文章1,其中的long varchar为AVJ 4 I4 LNK 45 Y 0 GEHV 023,那么我有一个包含以下参数的列表:AVJ、LNK、GEH。我希望能够识别包含所有这些参数的行。
所以基本上我会这样做:
SELECT *
FROM Products
WHERE description like '%AVJ%' AND
description like '%LNK%' AND
description like '%GEH%'
这样做很好,但问题是我不知道我将有多少参数,因为我从Excel电子表格中提取参数,并试图找到与这些参数匹配的行。
我找到的唯一合理的方法是包含(接近...),但现在我有SQL SERVER 2014 Express版,这个版本不支持全文搜索功能。
因此,现在我陷入了t-sql,试图创建一个过程,将我的所有{column like '%param %'}添加到一个循环或其他过程中,但它并没有真正工作。
它至少在t-sql中是可行的还是我走的是死胡同?我知道我甚至不应该这样做,因为SQL注入,但我没有看到任何其他的方式来做。
2条答案
按热度按时间q0qdq0h21#
一种方法是使用
values
语句构造查询,并使用join
和group by
:然后,您可以使用
split()
或其他方法将其泛化,以将字符串转换为表:您可以通过Google
SQL Server split
获得split()
函数的实现。vmdwslir2#
将Excel文件加载到表中(SSIS或使用OPENROWSET)。