27,580
社区成员
发帖
与我相关
我的任务
分享
-------------------------------------------
-- Author : liangCK 小梁
-- Comment: 小梁 爱 兰儿
-- Date : 2009-09-09 18:21:09
-------------------------------------------
--> 生成测试数据: @tb
DECLARE @tb TABLE (id INT,name VARCHAR(10),user_restore INT,user_conntent VARCHAR(58),time DATETIME)
INSERT INTO @tb
SELECT 1,'dsafa',0,'事业单位与公务员的工资其实是一个天上与地下的区别!','2009-09-09 17:56:17.477' UNION ALL
SELECT 2,'小刘',1,'你是医生还是教师?','2009-09-09 17:56:29.897' UNION ALL
SELECT 7,'小百货',0,'笑话','2009-09-09 17:59:48.507' UNION ALL
SELECT 3,'小陈',0,'奇怪哈为啥其他的企业公司员工一听绩效就怀疑要被扣钱','2009-09-09 17:57:49.210' UNION ALL
SELECT 4,'小组',1,'教师研究生毕业工作快10年了所有的钱平均下来不到2000','2009-09-09 17:58:27.773' UNION ALL
SELECT 5,'小子',1,'我认为那是好事每一次改革都会出现不同的声音关键是考评的问题','2009-09-09 17:58:45.397' UNION ALL
SELECT 6,'小巫见大巫',0,'给该涨的人涨给该降的人将','2009-09-09 17:59:01.537' UNION ALL
SELECT 8,'小脚',3,'都是身外之物O(∩_∩)O哈哈~','2009-09-09 18:00:11.460'
--SQL查询如下:
SELECT A.* FROM @tb AS A LEFT JOIN @tb AS B
ON B.id = A.user_restore
ORDER BY CASE WHEN B.user_restore IS NULL THEN A.id
WHEN B.user_restore = 0 THEN B.id
ELSE B.user_restore
END,
CASE WHEN B.user_restore = 0 THEN A.id ELSE A.user_restore END,
A.id
/*
id name user_restore user_conntent time
----------- ---------- ------------ ---------------------------------------------------------- -----------------------
1 dsafa 0 事业单位与公务员的工资其实是一个天上与地下的区别! 2009-09-09 17:56:17.477
2 小刘 1 你是医生还是教师? 2009-09-09 17:56:29.897
4 小组 1 教师研究生毕业工作快10年了所有的钱平均下来不到2000 2009-09-09 17:58:27.773
5 小子 1 我认为那是好事每一次改革都会出现不同的声音关键是考评的问题 2009-09-09 17:58:45.397
3 小陈 0 奇怪哈为啥其他的企业公司员工一听绩效就怀疑要被扣钱 2009-09-09 17:57:49.210
8 小脚 3 都是身外之物O(∩_∩)O哈哈~ 2009-09-09 18:00:11.460
6 小巫见大巫 0 给该涨的人涨给该降的人将 2009-09-09 17:59:01.537
7 小百货 0 笑话 2009-09-09 17:59:48.507
(8 row(s) affected)
*/