use*_*105 5 mysql sql sql-order-by
我想要我的表,rcarddet按"SDNO"(不是主键)按升序排序,但"0"除外.所以结果应该是这样的:
1
1
2
.
.
10
0
0
Run Code Online (Sandbox Code Playgroud)
我的查询现在是:
SELECT *
FROM `rcarddet`
WHERE `RDATE` = '2011-05-25'
AND `RCNO` = '1'
AND `PLACE` = 'H'
AND `SDNO` != 0
ORDER BY `rcarddet`.`SDNO` ASC;
Run Code Online (Sandbox Code Playgroud)
最简单的方法
SELECT * FROM rcarddet
WHERE RDATE = '2011-05-25' and RCNO = '1'and PLACE = 'H'
ORDER BY CASE
WHEN rcarddet.SDNO = 0 THEN [max_number_for_the_type_of_SDNO]
ELSE rcarddet.SDNO
END ASC
Run Code Online (Sandbox Code Playgroud)
SELECT *
FROM `rcarddet`
WHERE `RDATE` = '2011-05-25'
AND `RCNO` = '1'
AND `PLACE` = 'H'
ORDER BY
`SDNO` = 0,
`SDNO`;
Run Code Online (Sandbox Code Playgroud)