2013-08-26 4 views
0

У меня есть столбец под названием Dept, который является номером, и у меня есть другой столбец с именем manager, который является varchar. Столбец manager имеет список чисел в формате varchar (1,2,3,4), но также имеет символ «%». Моя проблема заключается в моем запросе я сравниваю dept к managerСравнение number to varchar

Where dept = [value in manager] 

Если я сравниваю dept к значению manager, который является VARCHAR, но содержит символ номер запроса работает, но когда я сравниваю dept переменной manager и он содержит «%», он больше не работает.

Итак, чтобы сделать его более четким, я покажу несколько примеров

Where dept = '1' -OK 
Where dept = '2' -OK 
Where dept = '%' -NOT OK 

Я попытался to_char(dept)='%' не повезло. Я не уверен, что еще делать?

ответ

1

С помощью Where dept = '%' вы пытаетесь найти строки, где уровень равен одному символу: «%». Вы должны использовать Pattern-matching Conditions, и это выглядит так: Where dept like '%'

+0

ха-ха да, я просто попытался, и это сработало. – user2367789

0

Как % является подстановочным-символом, который вы должны указать его: Here список всех специальных символов-признанного оракулом, и как они могут быть цитируемыми с фигурными скобками {}.

+0

Да, я знаю, что это шаблон, поэтому я его использую. Когда я говорю dept = '1', что означает select dept 1, но я использую%, чтобы выбрать, где все отделы – user2367789

+0

Я думаю, что нашел ответ. Является ли это приемлемой или хорошей практикой? Вместо dept = '%' я использую dept LIKE '%', и он работает. – user2367789

+0

'%' соответствует нескольким символам, а '_' - только одному. Я basivally думал, что вы попытались сопоставить характер себя ... – marderh