我做错了什么?我在这里撕扯我的头发!
我有两个来自不同服务器的表,通过ID字段链接。基本上在一个服务器中正确记录颜色(白色,黑色等)但是在第二个颜色记录有描述(白色 - 维多利亚窗口,玫瑰 - 维多利亚开门) 我的任务是生成一个查询,返回颜色不匹配的记录。
我制作了以下内容:
SELECT a.orderid,
a.colour AS LoggedColor,
b.groupdesc AS [Processed Color]
FROM [Server].[DB].[dbo].[frames] AS b
INNER JOIN tblorder AS a
ON a.orderid = b.header_id
WHERE b.colour NOT LIKE '%' + a.colour + '%'
然而,like语句似乎没有起作用,因为它返回以下内容:
记录颜色=白色
处理颜色=白色 - 维克窗口
进一步了解它实际上是在返回所有记录。
仅供参考我无法改变数据库结构 - 我与创作者就我的想法进行了多次热烈的讨论。
提前致谢
答案 0 :(得分:2)
看起来你有一些空格。试试这个:
SELECT a.orderid,
a.colour AS LoggedColor,
@a_colour
b.groupdesc AS [Processed Color]
FROM [Server].[DB].[dbo].[frames] AS b
INNER JOIN tblorder AS a
ON a.orderid = b.header_id
WHERE b.colour NOT LIKE '%' + LTRIM(RTRIM(a.colour)) + '%'
答案 1 :(得分:-1)
正确的语法是
WHERE NOT b.colour LIKE '%' + a.colour + '%'