将以逗号分隔的SQL数据转换为SQL的“in”指令。

14 浏览
0 Comments

将以逗号分隔的SQL数据转换为SQL的“in”指令。

这个问题已经在这里有答案

将SQL IN子句参数化

第一语句:

Select GroupMember
FROM Group 

结果:

洛杉矶,圣迭戈

(这是一个字符串)

第二语句:

 SELECT *
 FROM Store_Information 
 WHERE Store_Name IN ('Los Angeles', 'San Diego');

如何将洛杉矶,圣迭戈(一个数据)转换成 IN (\'洛杉矶\',\'圣迭戈\')?

admin 更改状态以发布 2023年5月20日
0
0 Comments

您可以编写一个查询如下:

SELECT * 
FROM 
Store_Information WHERE Store_Name IN (
SELECT Split.a.value('.', 'VARCHAR(100)') AS String   
       FROM  (SELECT  CAST ('' + REPLACE(groupname, ',', '') + '' 
                             AS XML) AS groupname       
               FROM  Group) 
       AS A 
CROSS APPLY groupname.nodes ('/M') AS Split(a))

0
0 Comments

使用内部查询

SELECT * FROM Store_Information
WHERE Store_Name IN (Select GroupMember FROM Group)

0