2018年12月26日 星期三

[SQL Server] Where condition in comma seperated string

最近在抓資料遇到一個狀況
比對的條件是用逗號分隔,如下圖


但是SQL Server沒有類似現成的function
另外,也不能在條件的前後加"'",直接用in
後來找到一篇,可以用charIndex,並在前後加","
這樣就可以比對出想要的結果了

DECLARE @categoryId INT
SET @categoryId = 3

SELECT *
FROM myTable
WHERE CHARINDEX(',' + CAST(@categoryId AS VARCHAR(MAX)) + ',', ',' + categoryIds + ',') > 0

Ref:
https://stackoverflow.com/questions/33278789/how-can-i-check-whether-a-number-is-contained-in-comma-separated-list-stored-in

沒有留言:

張貼留言