作者windknife18 (windknife18)
看板Database
标题Re: [SQL ] 请问SQL语法
时间Mon Feb 2 19:26:33 2009
感觉蛮好玩的就用 mysql 试玩了一下,栏位名称稍微改成 a, b, c ,
你应该可以很容易改成 ms sql 罗
mysql> select * from test2;
+------+-------+------+
| a | b | c |
+------+-------+------+
| A | itemA | 100 |
| A | itemB | 200 |
| A | itemC | 300 |
| B | itemC | 400 |
| B | itemD | 500 |
+------+-------+------+
select ta.a, ta.b, ta.c, tb.b, tb.c, tc.b, tc.c
from test2 ta
left join test2 tb on (ta.a = tb.a and ta.b < tb.b)
left join test2 tc on (ta.a = tc.a and ta.b < tc.b and tb.b < tc.b)
group by ta.a;
+------+-------+------+-------+------+-------+------+
| a | b | c | b | c | b | c |
+------+-------+------+-------+------+-------+------+
| A | itemA | 100 | itemB | 200 | itemC | 300 |
| B | itemC | 400 | itemD | 500 | NULL | NULL |
+------+-------+------+-------+------+-------+------+
※ 引述《ctMei (mei)》之铭言:
: 我用的环境是sql server 2005
: 这是我在实作上遇到的问题
: 我想写个预存程式
: 已有table:
: 店名 商品 价格
: ------------------------
: A itemA 100
: A itemB 200
: A itemC 300
: B itemC 400
: B itemD 500
: 想转成:
: 店名 商品1 价格1 商品2 价格2 商品3 价格3
: ---------------------------------------------------------
: A itemA 100 itemB 200 itemC 300
: B itemC 400 itemD 500
: 目前想到的方法是新增temp table,再用while一笔笔新增
: 但缺点是速度过慢,不实用
: 想请问板上高手,是否有其他更快速的方法能解决此问题
: 在此先感谢各位的帮忙了
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.229.85.166