碰到一个sql问题,不知道怎么搞,问了群里面的一个sql高手 ,夕颜大哥,他使用短短一句sql就实现我的要求,太牛了。原来sql还可以这么神奇,唉,还是怪自己sql不精通。
一个表A,两个字段ID,name,一个ID可能对应多name,要求根据一个ID查询出对应的name,但是不是以多行的形式显示出来,而是以一个行的形式出来,多个name以,分割。
比如 数据
i name
1 a
1 b
1 c
应该查询来的结果是; [a,b,c 1]
sql是这样写的
DECLARE @names varchar(1000)
SET @names = ''
SELECT @names=@names+ISNULL(name, '')+','
FROM A
WHERE id = 1
select @names
用的是sql的所谓自拼接,这是夕颜的说法,大家研究一下,感觉很有意思的。
一个表A,两个字段ID,name,一个ID可能对应多name,要求根据一个ID查询出对应的name,但是不是以多行的形式显示出来,而是以一个行的形式出来,多个name以,分割。
比如 数据
i name
1 a
1 b
1 c
应该查询来的结果是; [a,b,c 1]
sql是这样写的
DECLARE @names varchar(1000)
SET @names = ''
SELECT @names=@names+ISNULL(name, '')+','
FROM A
WHERE id = 1
select @names
用的是sql的所谓自拼接,这是夕颜的说法,大家研究一下,感觉很有意思的。
本文使用Blog_Backup未注册版本导出,请到soft.pt42.com注册。