SQL Query返回的结果不正确

时间:2018-04-27 09:38:04

标签: sql sql-server tsql sql-like

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

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

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

非常感谢任何建议。

3 个答案:

答案 0 :(得分:2)

取决于您要搜索的内容。

现在您搜索包含3,4,2或8

的任何行

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

如果你想搜索“[3428]”,那么你需要逃避[和],见this SO question

答案 1 :(得分:2)

假设您正在使用MS SQL Server,您需要转出方括号:

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。刚刚意识到@JoakimDanielson已经与类似的答案相关联;所以如果这解决了你的问题,请给他正确答案"投票。留下这个答案,因为它有可运行的代码。

答案 2 :(得分:1)

请勿使用where ApprovedByNewTExt like '%3428%'

中的sqaure括号