問題
如何 在SQL條件使用IN時傳入參數
解決方法
DECLARE @InConditionString VARCHAR(255)--condition
SET @InConditionString = '12345,67890'--try youself
;
WITH Split(stpos,endpos)
AS(
SELECT 0 AS stpos, CHARINDEX(',',@InConditionString) AS endpos
UNION ALL
SELECT endpos+1, CHARINDEX(',',@InConditionString,endpos+1)
FROM Split
WHERE endpos > 0
),
InConditionTable(seq,ColumnData)
AS(
SELECT 'seq' = ROW_NUMBER() OVER (ORDER BY (SELECT 1)),
'Column' = SUBSTRING(@InConditionString,stpos,COALESCE(NULLIF(endpos,0),LEN(@InConditionString)+1)-stpos)
FROM Split
),
SampleSourceTable(data)--sample source
as(
select '12345'
union
select '67890'
union
select '55555'
union
select '88888'
)
SELECT * FROM SampleSourceTable
where SampleSourceTable.data in(
select ColumnData
from InConditionTable)
沒有留言:
張貼留言