SQL 服务器:使用 LIKE 将字符串列表与通配符进行比较
SQL Server: Comparing a list of strings with wildcards using LIKE
我正在尝试找到一种方法来将字符字段与存储在查找中的一些字符串通配符进行比较 table。比如TableA是我的主table。 Table A 中有一个名为 "Code" 的列,我需要对其进行评估。我想找到所有行 WHERE Code LIKE "ABC%", "A%", or "A12%"
。这三个字符串存储在一个名为 Table B 的查找 table 中。我试图不惜一切代价避免对这些通配符进行硬编码。有没有办法做类似 WHERE A.Code LIKE (SELECT * FROM B)
的事情?
谢谢!
您可以使用 JOIN
:
SELECT DISTINCT a.*
FROM tabA a
JOIN tabB b
ON a.Code LIKE b.col_name;
您可以像下面那样使用 INNER JOIN:
SELECT TableA.* FROM TableA
INNER JOIN TableB
ON TableA.Code LIKE TableB.Code + '%'
我正在尝试找到一种方法来将字符字段与存储在查找中的一些字符串通配符进行比较 table。比如TableA是我的主table。 Table A 中有一个名为 "Code" 的列,我需要对其进行评估。我想找到所有行 WHERE Code LIKE "ABC%", "A%", or "A12%"
。这三个字符串存储在一个名为 Table B 的查找 table 中。我试图不惜一切代价避免对这些通配符进行硬编码。有没有办法做类似 WHERE A.Code LIKE (SELECT * FROM B)
的事情?
谢谢!
您可以使用 JOIN
:
SELECT DISTINCT a.*
FROM tabA a
JOIN tabB b
ON a.Code LIKE b.col_name;
您可以像下面那样使用 INNER JOIN:
SELECT TableA.* FROM TableA
INNER JOIN TableB
ON TableA.Code LIKE TableB.Code + '%'