编程论坛's Archiver

裙裙 发表于 2008-5-31 19:55

求教一条SQL语句,要求挺奇怪的

表结构如下:

ID   orderID
1      0
2      1
3      2
4      3
...

要求按照orderID来排序,排序方式是升序,但是我想要的效果是 0 必须排在最后一位,也就是下面这种结果:
ID   orderID
2      1
3      2
4      3
1      0


请问这种效果能实现么?

裙裙 发表于 2008-5-31 19:56

数据库用的sql server

裙裙 发表于 2008-5-31 20:03

数据有很多条啊,orderid都是不固定的数值

裙裙 发表于 2008-5-31 20:24

已解决!

gowang 发表于 2008-5-31 20:38

帮顶

[tk01] [tk01]

multiple1902 发表于 2008-5-31 21:24

讲讲你怎么解决的呀……

永夜的极光 发表于 2008-5-31 22:19

目前还没想到能用一条sql搞定的办法,LZ麻烦介绍一下好吗?

lele2007 发表于 2008-5-31 22:57

21秒时间就能解决问题?楼主是真的吗?厉害!请问你是怎么样用一条SQL语句实现的

裙裙 发表于 2008-5-31 23:30

select * from table order by (case orderid when 0 then 999 else orderid end)

如果orderid为0 的时候把它当成999用, 这样就排在后面了
999是随便设置的值,保证其他的orderid不会超过它就没问题了

multiple1902 发表于 2008-6-1 08:56

强呢

hmhz 发表于 2008-6-1 12:40

小丫头思路不错

zhuzhanjun 发表于 2008-6-1 15:46

厉害啊~~很厉害的女孩子啊

永夜的极光 发表于 2008-6-1 16:50

评分功能哪去了???多好的办法啊

ilovey4 发表于 2008-6-2 06:04

LZ很厉害..

dhdhzzw 发表于 2008-6-2 09:11

好。我还没见过这种写法呢。。学习了

tianyu123 发表于 2008-6-2 18:07

这样写

select * from table order by orderid>0,orderid

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.