尝试在此处进行部分字符串匹配,但是LIKE运算符出现问题。我确定它的语法,但我看不到它
SELECT Name
FROM Table1 a
INNER JOIN Table2 b ON a.Name = b.FullName LIKE '%' + a.Name + '%'
执行此操作时收到错误消息
Msg 156,Level 15,State 1,Line 4
关键字' LIKE'附近的语法不正确。
答案 0 :(得分:6)
试试这个
SELECT distinct Name, FullName
FROM Table1 a
INNER JOIN Table2 b ON (b.FullName LIKE '%' + a.Name + '%' OR a.Name like '%'+b.FullName+'%')
答案 1 :(得分:0)
尝试,
SELECT Name
FROM Table1 a
INNER JOIN Table2 b ON b.FullName LIKE '%' + a.Name + '%'
答案 2 :(得分:0)
你的意思是这就是你想要的
DECLARE @Tablle1 TABLE(id int identity(1,1),Name varchar(20))
DECLARE @Tablle2 TABLE(id int identity(1,1),FullName varchar(20))
INSERT INTO @Tablle1
(
Name
)
VALUES
(
'Bob'
),
('Sam');
INSERT INTO @Tablle2
(
FullName
)
VALUES
(
'Bob M'
),
('Gary');
SELECT b.FullName
FROM @Tablle1 a
INNER JOIN @Tablle2 b
ON b.FullName like '%' + a.Name + '%'
,输出
FullName
Bob M
答案 3 :(得分:0)
您需要使用LIKE将FullName与Name进行比较,但是您已经匹配列以检查它们是否相等。似乎没有任何逻辑。
如果您只需要匹配a.Name等模式的名称,您可以选择以下查询:
SELECT a.Name, b.FullName
FROM [1table] AS a INNER JOIN
[2table] AS b ON a.Name = b.FullName
WHERE (b.FullName LIKE N'%a.Name%')
答案 4 :(得分:0)
我对Postgres有这个确切的问题。 有点混乱,但是我使用textcat添加了通配符,因为上述'%'+在Metabase上的查询不能很好地发挥作用
尝试一下:
SELECT distinct Name, FullName
FROM Table1 a
INNER JOIN Table2 b ON b.FullName LIKE textcat(textcat('%',a.Name),'%')