我在 SQL Item_Name 中有一个字段,行为 ITEM1、ITEM2、ITEM3 和 ITEM4 我将这些行转换为具有逗号分隔值的单列,如 ITEM1、ITEM2、ITEM3、ITEM4。如何将此列转换为 ITEM1、ITEM2、ITEM3 和 ITEM4。我需要在最后一项中添加一个 and。我可以在循环中使用替换吗?
这是我的场景。 一切都是关于类(class)和先修类(class)
COURSE_ID PRE_COURSE_ID OPERATOR -------------------------------------------- IT105 IT100 AND IT105 IT101 IT106 1T103 BM110 BM101 AND BM110 BM102 AND BM110 BM103 CC107 CC103 OR CC107 CC104 -------------------------------------------------------
现在我期待如下输出;
COURSE_ID PRE_COURSE_ID ------------------------ IT105 IT100 and IT101 IT106 IT103 BM110 BM101,BM102 and BM103 CC107 CC103 OR CC104
对于运算符“或”,即使有两个以上的类(class),也不需要逗号。
最佳答案
试试这个:
CREATE TABLE #tmp (name NVARCHAR(10))
INSERT INTO #tmp VALUES('ITEM1'),('ITEM2'),('ITEM3')
SELECT STUFF((
SELECT *
FROM (
SELECT ',' + name AS [text()]
FROM #tmp
)q
FOR XML PATH('')
),1,1,'')
DROP TABLE #tmp
关于sql - 如何在SQL中的字符串中添加逗号and,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37021852/