我不知道该怎么做,但基本上我有一套名字
'USDE', 'USTX', 'USPA', 'SEMA' ... 'SEPO'
这组名称在特定的表中不存在,但是它给我的名字集
我需要在具有相同名称的表上对这些进行连接,但是它们可能具有前导或尾随或两者的附加文本。
'S1\USDE', 'S1\USTX\admin', 'USPA\localadmon'
那么如何在第一个列表中找到第二个列表中存在名称的每个用户?
我正在运行SQL Server 2008
答案 0 :(得分:1)
您可以使用JOIN
在表之间执行LIKE
,这是一个有效的示例:
CREATE TABLE #nameSet (namePart varchar(100));
CREATE TABLE #data (name varchar(100));
INSERT INTO #nameSet VALUES('USDE');
INSERT INTO #nameSet VALUES('USTX');
INSERT INTO #nameSet VALUES('USPA');
INSERT INTO #nameSet VALUES('SEMA');
INSERT INTO #nameSet VALUES('SEPO');
INSERT INTO #data VALUES('S1\USDE');
INSERT INTO #data VALUES('S1\USTX\admin');
INSERT INTO #data VALUES('USPA\localadmon');
INSERT INTO #data VALUES('S1\XXXX\admin');
SELECT
*
FROM
#data AS s
INNER JOIN #nameSet AS n ON s.name LIKE '%' + n.namePart + '%';