我有一个选择查询,如下所示:
SELECT
ROW_NUMBER() OVER (ORDER BY T.TitleId) as Row,
T.TitleId as TitleID,
T.TitleSort as TitleName,
TT.Description as TitleType,
TS.Description as TitleOrigin,
--get genres
(select Genre.Description + ', ' from Genre where GenreId IN
(Select GenreId from TitleGenre WHERE TitleId = T.TitleId)
group by Genre.Description for xml path('')) AS Genres, ....
Run Code Online (Sandbox Code Playgroud)
这段代码有效,但我找不到摆脱最后一个逗号的方法.这是返回的行的样子:
Action, Drama, Romance,
Run Code Online (Sandbox Code Playgroud)
我需要在不使用函数或声明变量的情况下删除最后一个逗号,就在查询中.那可能吗?提前感谢您的回答.
这样的东西应该接近 - 基本上将逗号移到开头,然后用STUFF删除它:
STUFF(
(
select ', ' + Genre.Description from Genre where GenreId IN
(Select GenreId from TitleGenre WHERE TitleId = T.TitleId)
group by Genre.Description for xml path('')
), 1, 2, '')
Run Code Online (Sandbox Code Playgroud)
祝好运.
您始终可以使用以下使用Left()和Len():
select *,
left(Genres, len(Genres)-1) as Genres
from
(
SELECT
ROW_NUMBER() OVER (ORDER BY T.TitleId) as Row,
T.TitleId as TitleID,
T.TitleSort as TitleName,
TT.Description as TitleType,
TS.Description as TitleOrigin,
--get genres
(select Genre.Description + ', ' from Genre where GenreId IN
(Select GenreId from TitleGenre WHERE TitleId = T.TitleId)
group by Genre.Description for xml path('')) AS Genres, ....
) src
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8086 次 |
| 最近记录: |