SQL функция «Мне нравится» - уточнение - PullRequest
0 голосов
/ 07 апреля 2020

В приведенном ниже запросе результат равен 1. Я сомневаюсь, почему первое условие не удовлетворяет?

Я думал, что оба случая, которые являются простыми наоборот, должны были быть одинаковыми, поэтому не должно первый случай был удовлетворен?

Что я здесь не так делаю?

Запрос:

select case when '%G24F_T15%' like '%TK_G24F_T15_DITPG204A15WA%'
then 0
when '%TK_G24F_T15_DITPG204A15WA%' like '%G24F_T15%'
then 1
end as abc

1 Ответ

2 голосов
/ 07 апреля 2020

Like не является симметричным c, поэтому знаки% с левой стороны воспринимаются буквально. То есть они рассматриваются как знаки%, а не как команды сопоставления с образцом.

Синтаксис со страницы справки :

-- Syntax for SQL Server and Azure SQL Database  

match_expression [ NOT ] LIKE pattern [ ESCAPE escape_character ]  

Две стороны не одинаковы - только правая сторона может иметь символы соответствия шаблону.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...