SQL ORDER BY запрос - PullRequest
       1

SQL ORDER BY запрос

5 голосов
/ 31 мая 2011

Я хочу, чтобы моя таблица, rcarddet, была упорядочена "SDNO" (не первичным ключом) в порядке возрастания, за исключением "0". Так должно получиться так:

1
1 
2
.
.
10
0
0

Мой запрос сейчас:

SELECT * 
  FROM `rcarddet` 
 WHERE `RDATE` = '2011-05-25' 
   AND `RCNO` = '1' 
   AND `PLACE` = 'H' 
   AND `SDNO` != 0 
ORDER BY `rcarddet`.`SDNO` ASC;

Ответы [ 2 ]

6 голосов
/ 31 мая 2011

Самый простой способ

  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  
4 голосов
/ 31 мая 2011
SELECT * 
  FROM `rcarddet` 
 WHERE `RDATE` = '2011-05-25' 
   AND `RCNO` = '1' 
   AND `PLACE` = 'H' 
ORDER BY
  `SDNO` = 0,
  `SDNO`;
...