2014-02-05 5 views
1

Код:SQL - Действительно сделать этот заказ?

SELECT FROM PRICE ORDER BY p.name 

, например, мы ищем test. в этом результат будет:

SELECT FROM ЦЕНА WHERE p.name LIKE '% тест%' ORDER BY p.name

Но я хотел бы изменить порядок следования по первому на поиск символа слова (в моем примере первый символ слово test будет t).

Для примера таблицы есть строки:

p.name 

about test 
bold test 
search test 
test test 
result test 
other test 

Я хотел бы изменить свой пример запроса, который итоге строки:

p.name 

test test //first becouse in my example first symbol word `test` will be `t` 
about test 
bold test 
search test 
result test 
other test 

Или это на самом деле не результат должен иметь:

p.name 

test test //first becouse in my example first symbol word `test` will be `t` 

Скажи мне, что это действительно так? и как это сделать?

ответ

2

Попробуйте так:

SELECT * FROM PRICE 
WHERE p.name LIKE '%test%' 
ORDER BY 
case 
    when p.name like 't%' then 0 
    else 1 
end, p.name 
+0

скажите мне, пожалуйста, как будет упорядочить по строке для ORDER BY 'f.priority, d.end_date, p.name DESC'? –

+0

Я думаю, что это должно быть так: 'порядок по делу ... end, f.priority, d.end_date, p.name DESC' – Parado

+0

приятно, все работает, спасибо за новые знания) –

Смежные вопросы