问题陈述::
我有一个名为category的数据库表,其中包含列名为categoryIds,下面是示例数据到categoryIDs列
categoryIds = '17,34,400,12'
现在我已经编写了下面的SQL查询来查找类别
将@search声明为varchar
设置@ search ='40'
从类别中选择*,类别为'%'+ @search +'%'
上面的查询返回结果是错误的,因为categoryID不包含40个类别
答案 0 :(得分:0)
这可能会对您有所帮助:
DECLARE @categoryIds VARCHAR(100) = '17,34,400,12'
SELECT t1.nod.value('.', 'varchar(50)') tags
FROM (SELECT Cast('<N>' + Replace(@categoryIds, ',', '</N><N>')
+ '</N>' AS XML) AS format) t
CROSS APPLY format.nodes('/N') AS t1(nod)
WHERE t1.nod.value('.', 'varchar(50)') = '40'