如何在不使用 XML 路径和临时变量的情况下获取一个逗号分隔值中的列值
How to get column values in one comma separated value without using XML path and temporary variable
我有一个 table 'City',其中包含如下行:
ID CityName
1 Chennai
2 Bangalore
3 Delhi
4 Mumbai
我想使用 select 查询得到类似 'Chennai,Bangalore,Delhi,Mumbai'
的结果。
当我搜索 Google 时,答案使用 XMLPATH
或临时变量。有什么办法可以不用这些吗?
CREATE TABLE [dbo].[Cities](
[Id] [int] NULL,
[CityName] [varchar](50) NULL
) ON [PRIMARY]
INSERT INTO [dbo].[Cities]
([Id],[CityName])
VALUES
(1,'New York'),
(2,'Miami'),
(3,'Orlando')
GO
DECLARE @listStr VARCHAR(MAX)
SELECT @listStr = COALESCE(@listStr+',' ,'') + CityName
FROM Cities
SELECT @listStr
编辑:
另请阅读此 post,它包含多种方法,您可以通过这些方法实现自己的目标。
我有一个 table 'City',其中包含如下行:
ID CityName
1 Chennai
2 Bangalore
3 Delhi
4 Mumbai
我想使用 select 查询得到类似 'Chennai,Bangalore,Delhi,Mumbai'
的结果。
当我搜索 Google 时,答案使用 XMLPATH
或临时变量。有什么办法可以不用这些吗?
CREATE TABLE [dbo].[Cities](
[Id] [int] NULL,
[CityName] [varchar](50) NULL
) ON [PRIMARY]
INSERT INTO [dbo].[Cities]
([Id],[CityName])
VALUES
(1,'New York'),
(2,'Miami'),
(3,'Orlando')
GO
DECLARE @listStr VARCHAR(MAX)
SELECT @listStr = COALESCE(@listStr+',' ,'') + CityName
FROM Cities
SELECT @listStr
编辑: 另请阅读此 post,它包含多种方法,您可以通过这些方法实现自己的目标。