使用相同行值的SQL LIKE

  • 本文关键字:SQL LIKE sql sql-server
  • 更新时间 :
  • 英文 :


我想知道如何使用行值作为类似语句的变量?例如

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

我有一个上表,我想返回ID 1和4,因为DESCRIPTION包含PID。我想是SELECT * from TABLE WHERE DESCRIPTION LIKE '%PID%',但我拿不到。

您可以使用CONCAT()来组装匹配模式,如:

select *
from t
where description like concat('%', PID, '%')

我们也可以尝试在这里使用CHARINDEX

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

演示

注意,我在演示中假设PID列实际上是文本列,而不是数字列。如果PID是数字,我们可能必须首先使用强制转换才能使用CHARINDEX(或其他答案中给出的任何方法(。

使用CONCATSQL函数

SELECT *
FROM TABLE
WHERE DESCRIPTION LIKE CONCAT('%', PID, '%')

最新更新