我想知道如何使用行值作为类似语句的变量?例如
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
(或其他答案中给出的任何方法(。
使用CONCAT
SQL函数
SELECT *
FROM TABLE
WHERE DESCRIPTION LIKE CONCAT('%', PID, '%')