作者razor (=_=)
看板Database
标题Re: [SQL ] 请教这个问题如何下SQL呢?
时间Mon Jun 26 21:10:59 2006
※ 引述《ylk (YLK)》之铭言:
: ※ 引述《NightPrince (shooting star)》之铭言:
: : ※ 引述《ylk (YLK)》之铭言:
: : : id used time
: : : --------- ------- --------
: : : A 5 13:30
: : : B 5 13:00
: : : C 4 14:00
: : : D 1 12:00
: : : E 0 11:00
: : : 各位前辈好,想请教一下一个SQL问题。
: : : 需求:找到 time 时间最早的资料,不过,如果 used 有 > 0 的,要优先选择。
: : : 以上列资料表来看,我要选择的是 资料D。
: : : 想了很久,还是想不出来这个 SQL 要怎麽下,请问有人能帮忙提醒一下吗?
: : : 谢谢!
: : select * from table where used > 0 order by time asc limit 1;
: 谢谢您的回应。是我没说明清楚,抱歉。
: 如果 used 有 > 0 的资料,要优先选择,反之,若没有 > 0 ,则抓出 = 0 的资料。
: 这一直是我很困惑的部分。
: 再次谢谢您。
关键是把{0,{1,2,3,4,5,...}}转换成{0,1}
SELECT CAST(used AS bit) AS x, MIN([time]) AS t
FROM table
GROUP BY CAST(used AS bit)
ORDER BY x DESC
结果:
x t
1 下午 12:00:00
0 上午 11:00:00
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.224.184.46
1F:推 PsMonkey:囧> 感觉很帅的一招... 不过感觉有点危险... 06/26 21:23