首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求一条SQL代码?多谢谢

2012-01-16 
求一条SQL代码?谢谢谢表bevymanbevy_idbevy_manbevy_sort1小华22小朱23小水2.........如何output为字符串:

求一条SQL代码?谢谢谢
表bevyman
bevy_id     bevy_man     bevy_sort
    1                   小华           2
    2                   小朱           2
    3                   小水           2
    ...               ...             ...
如何output   为字符串: "小华,小朱,小水 "

[解决办法]
参考:
CREATE TABLE A(id INT,country VARCHAR(100))
INSERT A
SELECT 1, '中国;日本;韩国 ' UNION ALL
SELECT 2, '美国;意大利;法国 ' UNION ALL
SELECT 3, '德国 '
SELECT * FROM A

-- 建立一个辅助的临时表就可以了
SELECT TOP 8000 id = identity(int,1,1)
INTO # FROM syscolumns a, syscolumns b
SELECT
A.ID,
COUNTRY = SUBSTRING(A.COUNTRY, B.ID, CHARINDEX( '; ', A.COUNTRY + '; ', B.ID) - B.ID)
FROM A, # B
WHERE SUBSTRING( '; ' + a.COUNTRY, B.id, 1) = '; '
ORDER BY 1,2
GO

DROP TABLE A,#

id country
----------- ----------------------------------------------------------------
1 中国;日本;韩国
2 美国;意大利;法国
3 德国

(所影响的行数为 3 行)


[解决办法]
不好意思,忘了逗号,改正如下:
declare @a varchar(100)
set @a= ' '
select @a=@a+bevy_man+ ', ' from tablename
select left(@a,len(@a)-1) as output
[解决办法]
declare @a varchar(100)
set @a= ' '
select @a=@a+isnull(bevy_man, ' ')+ ', ' from tablename
select left(@a,len(@a)-1) as output

热点排行