日期:2014-05-17 浏览次数:20666 次
create table t(ta int ,tb char(10)) insert into t select 1,'深灰色 ' union select 2,'驼色' union select 3,'暗紫色' union select 4,'灰色' union select 5,'21-5K013' SELECT MAX(CASE WHEN ta=1 THEN tb ELSE '0' END) AS '列1', MAX(CASE WHEN ta=2 THEN tb ELSE '0' END) AS '列2', MAX(CASE WHEN ta=3 THEN tb ELSE '0' END) AS '列3', MAX(CASE WHEN ta=4 THEN tb ELSE '0' END) AS '列4', MAX(CASE WHEN ta=5 THEN tb ELSE '0' END) AS '列5' FROM t 列1 列2 列3 列4 列5 ---------- ---------- ---------- ---------- ---------- 深灰色 驼色 暗紫色 灰色 21-5K013 (1 行受影响)
------解决方案--------------------
将行并成一个字段以换行符分开
SELECT STUFF((
SELECT
CHAR(10)+[r]
FROM t
FOR XML PATH('')), 1, 1, '')
------解决方案--------------------
http://technet.microsoft.com/zh-cn/library/ms177410.aspx
sql server 使用 PIVOT 和 UNPIVOT