我想在此查询中添加计数器任何想法?
SELECT
STUFF((
SELECT ' , vol' + counter +' : ' + t2.ViaLocValue
FROM Book_ViaLocat t2
WHERE t2.BookId = t1.BookId
FOR XML PATH (''))
,1,2,'') AS Names
FROM Book_ViaLocat t1
WHERE t1.BookId = '167698'
GROUP BY t1.BookId;
结果是这样的
第1卷:java2,第2卷:java3,第3卷:java4
答案 0 :(得分:1)
使用ROW_NUMBER():
SELECT
STUFF((
SELECT ' ,vol' + CAST(ROW_NUMBER() OVER (ORDER BY t2.ViaLocValue) AS VARCHAR(4))+
' : ' + t2.ViaLocValue
FROM Booking_ViaLocat t2
WHERE t2.BookingId = t1.BookId
FOR XML PATH (''))
,1,2,'') AS Names
FROM Booking_ViaLocat t1
WHERE t1.BookId = '167698'
GROUP BY t1.BookId;
答案 1 :(得分:0)
可以使用" ROW_NUMBER()",你可以根据你的愿望对你的表值进行排序(如果你愿意,可以在roder上更改它)。 请按照以下代码:)
SELECT
STUFF((
SELECT ' ,vol' + ROW_NUMBER() OVER(ORDER BY t1.BookId asc) AS Row +' : ' + t2.ViaLocValue
FROM Booking_ViaLocat t2
WHERE t2.BookingId = t1.BookId
FOR XML PATH (''))
,1,2,'') AS Names
FROM Booking_ViaLocat t1
WHERE t1.BookId = '167698'
GROUP BY t1.BookId;