在SQL中如何拆分选择一个不存在的字符串我是一个表?

时间:2017-12-08 06:50:37

标签: sql sql-server-2008

这是我的查询,我曾经在条件和TSTable

中使用UserID
                    SELECT  UserID
                    FROM    TSTable
                    WHERE UserID IN (@UserID) 

我需要从@UserID获取UserId

  where    @UserID = ''IMS080'',''IMS108'',''IMS218''

在TSTable中不存在。我怎样才能做到这一点? 例如,如果我执行查询,它应该从IN条件返回值 ' IMS080'这在TSTable中不存在。

先谢谢

2 个答案:

答案 0 :(得分:0)

这是你要找的吗?

select 'IMS080' as UserID
  union
select 'IMS108'
  union
select 'IMS218';

答案 1 :(得分:0)

试试这个

;WITH CTE AS 
(
    SELECT Split.a.value('.', 'VARCHAR(100)') AS USERID  
    FROM 
    (
        SELECT CAST ('<M>' + REPLACE('IMS080,IMS108,IMS218', ',', '</M><M>') + '</M>' AS XML) AS Data  
    )AS A CROSS APPLY Data.nodes ('/M') AS Split(a)
)
SELECT * FROM CTE
WHERE USERID NOT IN (SELECT UserId FROM #TSTable)