SQL 查询返回的结果不正确

Incorrect result returned by SQL Query

以下查询返回所有数据,而不是显示 ApprovedByNewTExt 列中包含 [3428] 的记录。

select * from 
    (
        Select Rec_Num, 
            COALESCE(AppByENo6,AppByENo5,AppByENo4,AppByENo3,AppByENo2,AppByENo1)
            As 'ApprovedByNewTExt' 
        FROM MyTable
    ) 
as output
where ApprovedByNewTExt like '%[3428]%'

花了更多时间确定问题但未能解决。

非常感谢任何建议。

不要在 where ApprovedByNewTExt like '%3428%'

中使用方括号

取决于您要搜索的内容。

现在您搜索包含 3、4、2 或 8 的任何行

如果您想搜索“3428”,请删除 [ 和 ]

如果要搜索“[3428]”,则需要转义 [ 和 ],请参阅 this SO question

假设您使用的是 MS SQL 服务器,您需要转义方括号:

select *
from 
(
  Select Rec_Num, 
  COALESCE(AppByENo6,AppByENo5,AppByENo4,AppByENo3,AppByENo2,AppByENo1) As 'ApprovedByNewText' 
  FROM MyTable
) as output
where ApprovedByNewText like '%\[3428]%' escape '\'

p.s。刚刚意识到 已经链接到类似的答案;因此,如果这解决了您的问题,请给他 "right answer" 票。留下这个答案,因为它有可运行的代码。