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

一个sql的有关问题,紧急

2013-08-09 
请教高手一个sql的问题,紧急!!数据表n_idnumbers_id100998881200983932390383231423454761532576573632232

请教高手一个sql的问题,紧急!!
数据表
n_id    number     s_id
1       0099888    1
2       0098393    2
39038323     1
4       2345476    1
53257657    3
63223232    2

需要的结果

s_id    number1      number2     number3
1    0099888           9038323  2345476
2    0098393           3223232     null
3    3257657           null        null
4    nul               null  null

请教高手,这个Sql语句该怎么写?
在SQL server 2000里用的,没有开窗函数 SQL 转置
[解决办法]
你搜索一下行列转换。这是百度上一个解决的很好的问题。
http://zhidao.baidu.com/question/570840293.html?quesup2&oldq=1
[解决办法]

SELECT
s_id, 
number1 = MAX(CASE rowid WHEN 1 THEN number END),
number2 = MAX(CASE rowid WHEN 2 THEN number END),
number3 = MAX(CASE rowid WHEN 3 THEN number END)
FROM 
(
SELECT rowid = (SELECT COUNT(*) FROM TB b WHERE b.s_id=a.s_id and b.n_id <= a.n_id), * FROM TB a
) t
GROUP BY s_id
ORDER BY s_id

热点排行