假设我正在为表my_table
在SQL Server中构建一个存储过程。
这个存储过程的目的是接受一个输入关键字参数@keyword nvarchar(255)
和一个逗号分隔的字符串'@vehicleList nvarchar(266)‘。
@catList
基本上包含了在前端选中的过滤器复选框的值(选项是汽车、卡车、摩托车)。因此,车辆列表可能如下所示:
@vehicleList = "car, truck, motorcycle"
或者这个
"car, motorcycle"
或者这个
"truck"
这些复选框名称与my_table
中的列名相同。我希望根据在其中一列中找到的@keyword
参数从my_table返回某些列,但前提是该列在@vehicleList
中。
如果@vehicleList始终是'Car,Truck,Motorcyle',我可以这样做:
SELECT ID, T_Number, Car, Truck, Motorcycle, Date
FROM T_Ticket
WHERE Car Like '%' + @Keyword + '%'
UNION ALL
SELECT ID, T_Number, Car, Truck, Motorcycle, Date
FROM T_Ticket
WHERE Truck Like '%' + @Keyword + '%'
UNION ALL
SELECT ID, T_Number, Car, Truck, Motorcycle, Date
FROM T_Ticket
WHERE Motorcycle Like '%' + @Keyword + '%'
我的问题是,如何基于每次调用存储过程时都不同的逗号分隔的变量字符串来执行此操作?
转载请注明出处:http://www.ydsst.com/article/20230526/1312775.html