实际上,整个问题可能是如此畸形以至于无法回答。然而,无论如何我得到了答案,这很好。我主要是在寻找WHEN
- > THEN
结构。
我有books
可以检出。 date_out
,date_due
和date_returned
使用这三个字段,我希望能够为每个book
选择id和状态,其中status是int,意思是“签出”,“过期”或“可用”
那是:
\-----------------\
| ID | status |
|-----------------|
| 1 | 0 |
| 2 | 2 |
| 3 | 1 |
-------------------
其中0 =可用,1 = out和2 =过期(或者其他什么,我实际上并不关心值代表什么,只要它们作为int返回)。
我怀疑这是一个简单的问题,但我缺乏SQL知识甚至开始谷歌搜索。
谢谢!
为了清晰起见,也许。
答案 0 :(得分:0)
SELECT id,
CASE
WHEN date_returned>=date_due AND date_returned>=date_out THEN 0
WHEN date_due>=date_out AND date_due>date_returned THEN 2
WHEN date_out>date_due AND date_out>date_returned THEN 3
ELSE 4 END as status
FROM books