我需要将表安排在父子结构中。
如何查询此表?
txnno Name type isHeadr headr
------------------------------------------
1000 BEFORE JO Y
1001 WHILE JO Y
1002 data aaa JO N 1000
1003 bbbbdfds JO N 1000
1004 ccccccc JO N 1000
1012 aaa111 JO N 1001
1015 bbb222 JO N 1001
1016 ccc333 JO N 1001
在我的SQL Server中获得此结果:
txnno Name type isHeadr headr
-----------------------------------------
1000 BEFORE JO Y
1002 data aaa JO N 1000
1003 bbbbdfds JO N 1000
1004 ccccccc JO N 1000
1001 WHILE JO Y
1012 aaa111 JO N 1001
1015 bbb222 JO N 1001
1016 ccc333 JO N 1001
答案 0 :(得分:3)
SELECT *
FROM YourTable
ORDER BY ISNULL(headr,txnno) ASC, isHeadr DESC, txnno
输出:
txnno Name type isHeadr headr
1000 BEFORE JO Y NULL
1002 data aaa JO N 1000
1003 bbbbdfds JO N 1000
1004 ccccccc JO N 1000
1001 WHILE JO Y NULL
1012 aaa111 JO N 1001
1015 bbb222 JO N 1001
1016 ccc333 JO N 1001
如果您使用0
代替NULL
使用NULLIF:
SELECT *
FROM YourTable
ORDER BY ISNULL(NULLIF(headr,0),txnno) ASC, isHeadr DESC, txnno