通过合并表中的记录来打印结果

时间:2015-03-05 10:28:08

标签: sql sql-server sql-server-2008 sql-server-2008-r2 sql-server-2012

我的表格名称为" PrintWord" ,列名称为 col_letter ,其中的数据如下:

"col_letter"
S
A
C
H
I
N

我想将此表中的o / p打印为:

SACHIN

谢谢!

2 个答案:

答案 0 :(得分:2)

DECLARE @t table
(

    Name varchar(10)
)
INSERT INTO @t
SELECT 's' UNION ALL
SELECT 'a' UNION ALL
SELECT 'c' UNION ALL
SELECT 'h' UNION ALL
SELECT 'i' UNION ALL
SELECT 'n' 

SELECT DISTINCT
stuff(
(
    SELECT ' '+ [Name] FROM @t  FOR XML PATH('')
),1,1,'') 
FROM (SELECT DISTINCT Name FROM @t ) t

答案 1 :(得分:1)

有一个硬编码版本:

SELECT col_letter
FROM PrintWord
ORDER BY 
 CASE col_letter
 WHEN 'S' THEN 1
 WHEN 'A' THEN 2
 WHEN 'C' THEN 3
 WHEN 'H' THEN 4
 WHEN 'I' THEN 5
 WHEN 'N' THEN 6
 END
FOR XML PATH('')

您需要ORDER BY子句来保证字母的顺序。