#sql #teradata-sql-assistant
Вопрос:
У меня проблема с sql с использованием teradata sql-помощника с оператором like, как показано в приведенном ниже примере:
таблица А
id|
23_0
111_10
201_540
поэтому я должен выбрать только идентификатор, заканчивающийся на ‘_0’
я попытался выполнить приведенный ниже запрос, но он дал мне все три идентификатора
select * from A
where id like '%_0'
но я ожидаю только
id|
23_0
у вас есть какие-нибудь идеи, пожалуйста ?
Ответ №1:
Проблема в том, что _
это особый персонаж. Итак, один из методов заключается в:
where id like '$_0' escape '
Вы также можете использовать right()
:
where right(id, 2) = '_0'
Комментарии:
1. спасибо @Gordon Linoff за ваш ответ, я протестировал первое решение, но,похоже, оно не работает, я ничего не получил, второе решение я не могу его использовать, потому что у меня много идентификаторов в моих реальных данных, поэтому у меня есть не только эти примеры, поэтому я не могу использовать правильно (id, 2)
2. Для вашего случая все еще нужна % wild-карта:
where id like '%$_0' escape '$'
Вы также можете использовать right()
:
Комментарии:
1. спасибо @Gordon Linoff за ваш ответ, я протестировал первое решение, но,похоже, оно не работает, я ничего не получил, второе решение я не могу его использовать, потому что у меня много идентификаторов в моих реальных данных, поэтому у меня есть не только эти примеры, поэтому я не могу использовать правильно (id, 2)
2. Для вашего случая все еще нужна % wild-карта:
where id like '%$_0' escape '$'