У меня есть проблема в следующем выборе запроса.Некоторые строки порядка по столбцу равны нулю. Как сделать заказ по столбцу необязательным в этой ситуации
select *
from ".$table2." a,purpose_details b
where b.purpose_code=a.purpose and purpose_code in(1,4,6,7,10)
and ((fromdt<='$frmdate'and todt>='$frmdate')
or (fromdt<='$frmdate' and todt='1111-11-11'))
and substr(a.appno,4,1)!=6
order by purpose_priority,
cast(substr(a.case_no,12,4) as int) ,cast(substr(a.case_no,4,1) as int),
cast(substr(a.case_no,5,7) as int),cast(substr(a.appno,12,4) as int) ,
cast(substr(a.appno,4,1) as int),cast(substr(a.appno,5,7) as int)";
проблема заключается в том, что строки в таблице2 могут иметь или не иметь значение appno. (т.е.) значение appno может быть NULL для некоторых строк.
В связи с тем, что appno является одним из числа в порядке по столбцу, этот конкретный код возвращает недействительную ошибку ввода.
Наконец, я хочу, чтобы выберите запрос, упорядочив столбцы с помощью appno, только если значение appno не равно.
Примечание: в обеих ситуациях должно применяться положение order by для остальных столбцов.
Просьба помочь мне разобраться. Заранее спасибо.
Спасибо за ответ сэр. Но проблема все еще сохраняется. Но когда я удаляю cast() из предложения order by, он решает проблему. – Srini