【发布时间】:2013-03-17 21:25:30
【问题描述】:
表关闭
id cls_id users_id
1----1---------1
2----1---------2
sql
select cls_id,
cls_name,
MAX(case when rn = 1 then users_id end) user_id1,
MAX(case when rn = 2 then users_id end) user_id2
from
(
SELECT cr.cls_id,
cr.cls_name,
u1.users_id,
ROW_NUMBER() over(partition by cr.cls_id order by u1.users_id) rn
FROM classroom cr
INNER JOIN clsown co
ON co.cls_id = cr.cls_id
INNER JOIN users AS u1
ON co.users_id = u1.users_id and u1.users_id =1
) d
group by cls_id, cls_name;
我明白了
cls_id cls_name users_id1 users_id2
1 room1 1 NULL
我想看看
cls_id cls_name users_id1 users_id2
1 room1 1 2
【问题讨论】:
-
@bluefeet users_id2 NULL
-
请看这个演示 -- sqlfiddle.com/#!3/87e1c/2 -- 我无法重现这个问题
-
如果演示不正确,请在您的问题中扩展您的数据集并说明您的需求。
标签: sql sql-server-2008 inner-join