Sql server 从sql结果编译单个字符串
可能重复:Sql server 从sql结果编译单个字符串,sql-server,Sql Server,可能重复: 嗨 如何从SQL查询结果编译单个字符串 例如 结果SQL查询必须返回一行,结果为单个字符串 例如 注意:使用MS SQL 2005 编辑 可以看到等价物 编辑 使用光标可以看到等价物。类似这样的事情(从)应该让你开始: 声明@tbl表(id INT主键,list VARCHAR(8000)) 不计较 声明@c INT、@p VARCHAR(8000)、@cNext INT、@pNext VARCHAR(40) 解除分配c 从@tbl中选择* 使用光标。类似这样的事情(从)应该让你开
嗨 如何从SQL查询结果编译单个字符串 例如 结果SQL查询必须返回一行,结果为单个字符串 例如 注意:使用MS SQL 2005 编辑 可以看到等价物 编辑
使用光标可以看到等价物。类似这样的事情(从)应该让你开始: 声明@tbl表(id INT主键,list VARCHAR(8000)) 不计较 声明@c INT、@p VARCHAR(8000)、@cNext INT、@pNext VARCHAR(40) 解除分配c 从@tbl中选择*
使用光标。类似这样的事情(从)应该让你开始: 声明@tbl表(id INT主键,list VARCHAR(8000)) 不计较 声明@c INT、@p VARCHAR(8000)、@cNext INT、@pNext VARCHAR(40) 解除分配c 从@tbl中选择*
这是我通常使用的,只需删除表格并添加您自己的:
DECLARE @A
TABLE ( Name VARCHAR(50) );
INSERT INTO @A ([Name]) VALUES ('John');
INSERT INTO @A ([Name]) VALUES ('Sam');
INSERT INTO @A ([Name]) VALUES ('Kate');
SELECT REPLACE((SELECT [Name] AS [data()]
FROM @A
FOR XML PATH('')
) , ' ', ', ') [Concatenated]
应导致:
Concatenated
-------------------
John, Sam, Kate
这是我通常使用的,只需删除表格并添加您自己的:
DECLARE @A
TABLE ( Name VARCHAR(50) );
INSERT INTO @A ([Name]) VALUES ('John');
INSERT INTO @A ([Name]) VALUES ('Sam');
INSERT INTO @A ([Name]) VALUES ('Kate');
SELECT REPLACE((SELECT [Name] AS [data()]
FROM @A
FOR XML PATH('')
) , ' ', ', ') [Concatenated]
应导致:
Concatenated
-------------------
John, Sam, Kate
快速和肮脏的方式来做,没有很多的错误检查,但它的工作
DECLARE @theList VARCHAR(2000)
SET @theList =''
SELECT @TheList=@theList+[name]+','
FROM <tableName> WHERE [name] is not null
IF @@rowcount > 0
SET @TheList=left(@TheList,len(@TheList)-1)
PRINT @theList
DECLARE@theList VARCHAR(2000)
设置@theList=''
选择@TheList=@TheList+[name]+','
其中[name]不为空
如果@@rowcount>0
设置@TheList=left(@TheList,len(@TheList)-1)
打印@theList
快速而肮脏的方法,不需要大量的错误检查,但它可以工作
DECLARE @theList VARCHAR(2000)
SET @theList =''
SELECT @TheList=@theList+[name]+','
FROM <tableName> WHERE [name] is not null
IF @@rowcount > 0
SET @TheList=left(@TheList,len(@TheList)-1)
PRINT @theList
DECLARE@theList VARCHAR(2000)
设置@theList=''
选择@TheList=@TheList+[name]+','
其中[name]不为空
如果@@rowcount>0
设置@TheList=left(@TheList,len(@TheList)-1)
打印@theList
复制至少,可能更多…另一个:复制至少,可能更多…另一个: