【发布时间】:2018-07-05 10:37:40
【问题描述】:
SELECT 'Values ("'+ S.enroll_no +'",'+ Pm.periodname COLLATE DATABASE_DEFAULT +'),'
FROM studentattendencedetails AS SA
LEFT JOIN studentattendencemaster AS SM
ON SA.attendencemasterid = SM.id
LEFT JOIN tbl_periodmaster AS Pm
ON SA.periodid = Pm.id
LEFT JOIN students AS S
ON SA.studentid = S.id
WHERE SA.isabsent = 2
ORDER BY S.enroll_no
输出:
ColumnName
Values ("XXXXXX",2),
Values ("XXXXXX",1),
Values ("YYYYYYY",2),
Values ("YYYYYYY",1),
但我只想为列表中的第一行添加“值”,如下所示,并且需要从最后一行中删除“,”。
所需输出:
ColumnName
Values ("XXXXXX",2),
("XXXXXX",1),
("YYYYYYY",2),
("YYYYYYY",1)
【问题讨论】:
-
我猜这个问题与你几个小时前问的这个问题有关。 stackoverflow.com/questions/51184828/… - 既然已经拥有这些值,为什么还要让它们动态化?你不能只使用 INSERT INTO dbo.XXXX Select Yourcolumns from XXXX
-
您正在为连接准备列,这是不必要的。当需要连接时,只需按照 Gordon Linoff 在 Thomas 提到的另一篇文章中的回答使用 'Values' + stuff(.....)。这将在开头有值,最后没有逗号。
标签: sql sql-server