【发布时间】:2011-01-16 12:48:45
【问题描述】:
我有这张表(简体):
CREATE TABLE `my_table` (
`id` INT NOT NULL AUTO_INCREMENT ,
`item_name` VARCHAR(45) NULL ,
`price` DECIMAL(10,0) NULL ,
PRIMARY KEY (`id`)
)
我需要从表中选择所有项目,以这种方式排序:
- 以
price > 0.00开头的项目,由price ASC订购 - 最后带有
price = 0.00的项目,由id订购
我试过了:
SELECT *
FROM my_table
WHERE 1
ORDER BY
CASE price WHEN !0.00 THEN price
ELSE id
END
ASC
我得到类似的结果
| item_name | price |
|---|---|
| foo | 150,00 |
| bar | 0,00 |
| baz | 500,00 |
| hum | 0,00 |
如何构建查询以拥有
| item_name | price |
|---|---|
| foo | 150,00 |
| baz | 500,00 |
| bar | 0,00 |
| hum | 0,00 |
感谢您的宝贵时间
【问题讨论】: