SQL LIKE с использованием того же значения строки - PullRequest
0 голосов
/ 07 мая 2020

Мне интересно, как я могу использовать значение строки в качестве переменной для моего оператора Like? Например,

ID | PID  | DESCRIPTION
1  | 4124 | Hi4124
2  | 2451 | Test
3  | 1467 | Hello
4  | 9642 | Me9642

У меня есть таблица выше, я хочу вернуть идентификаторы 1 и 4, поскольку DESCRIPTION содержит PID. Думаю, это будет SELECT * from TABLE WHERE DESCRIPTION LIKE '%PID%', но не понимаю.

Ответы [ 3 ]

3 голосов
/ 07 мая 2020

Вы можете использовать CONCAT(), чтобы собрать соответствующий шаблон, например:

select *
from t
where description like concat('%', PID, '%')
2 голосов
/ 07 мая 2020

Мы также можем попробовать использовать CHARINDEX здесь:

SELECT ID, PID, DESCRIPTION
FROM yourTable
WHERE CHARINDEX(PID, DESCRIPTION) > 0;

Демо

Обратите внимание, что в демонстрации я предполагаю, что Столбец PID на самом деле является текстовым, а не числовым c столбцом. Если PID будет numeri c, нам может потребоваться сначала использовать приведение, чтобы использовать CHARINDEX (или любой из методов, указанных в других ответах).

0 голосов
/ 07 мая 2020

Используйте функцию CONCAT SQL

SELECT *
FROM TABLE
WHERE DESCRIPTION LIKE CONCAT('%', PID, '%')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...