[ztjSQL]各列中的数据,横得用逗号出

问题:
有一SQL Server表,内容如下:
name         alias        age
 张三          23
 李四          24
 王五
 卢芳         小芳
 操利              
 李焱
 季霞         小霞         22
 周中继      
 张延         张慎        
 孙起                     21
…………
…………

我想把name字段中的各个值用“,”连接起来,怎么办呢?
比如上表的结果应该是:
张三,李四,王五,卢芳,………… 

[解决方法]

declare @test1 table (name varchar(10))
insert @test1
select '张三' union
select '李四' union
select '王五' union
select '卢芳' union
select '操利' union
select '李焱' union
select '季霞' union
select '周中继' union
select '张延' union
select '孙起'

declare @sql varchar(1000)
set @sql = ''
select @sql = @sql + ',' + name from @test1
set @sql = stuff(@sql, 1, 1, '')
print @sql

stuff说明:
下例通过在第一个字符串 (abcdef) 中删除从第二个位置(字符 b)开始的三个字符,然后在删除的起始位置
插入第二个字符串,创建并返回一个字符串。

SELECT STUFF('abcdef', 2, 3, 'ijklmn')
GO

下面是结果集:

--------- 
aijklmnef 

(1 row(s) affected)

在下面的第一个示例中,将变量 @var1 赋给 Generic Name 作为它的值。在 Customers 表中不存在为
CustomerID 指定的值,因此对该表的查询不返回行。该变量将保留 Generic Name 值。

USE Northwind
DECLARE @var1 nvarchar(30)
SELECT @var1 = 'Generic Name' SELECT @var1 = CompanyName FROM Customers
WHERE CustomerID = 'ALFKA'
SELECT @var1 AS 'Company Name'

结果如下:

Company Name
----------------------------------------
Generic Name

在下例中,子查询用于给 @var1 赋值。为 CustomerID 请求的值不存在,因此子查询不返回值并将该变
量设
为 NULL。

USE Northwind
DECLARE @var1 nvarchar(30)
SELECT @var1 = 'Generic Name' SELECT @var1 = (SELECT CompanyName
FROM Customers WHERE CustomerID = 'ALFKA') SELECT @var1 AS 'Company Name'

结果如下:

Company Name
----------------------------
NULL
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值