Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 从sql结果编译单个字符串_Sql Server - Fatal编程技术网

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
复制至少,可能更多…另一个:复制至少,可能更多…另一个: