2015-09-18 2 views
0

Мне нужно отсортировать таблицу, используя условие. Я использовал нижеследующий отчет:Использование `LIKE 'внутри оператора IF

select * from table1 order by if (col1 like '%Cochin%', substr(col1,1,4), col1) 

Но у меня была ошибка «Отсутствие правильной круглой скобки».

+0

Дубликат http://stackoverflow.com/questions/15349677/conditional-order-by, http://stackoverflow.com/questions/2258376/mysql -conditional-order-by, http://stackoverflow.com/questions/6523954/sql-server-conditional-order-by и т. д. – cimmanon

+0

Вместо этого используйте выражение CASE. – jarlh

+0

Какая СУБД вы используете? Postgres? Oracle? –

ответ

0

Используйте сазе так:

SELECT * 
    FROM table1 
    ORDER BY CASE WHEN col1 LIKE '%Cochin%' THEN SUBSTR(col1,1,4) 
     ELSE col1 END 
Смежные вопросы