代码之家  ›  专栏  ›  技术社区  ›  Steve

tsql使用like加通配符和尾随空格?

  •  5
  • Steve  · 技术社区  · 14 年前

    我无法使用like语句来处理空格和尾随通配符。 我的问题如下:

    select * from Table where Field like 'Desc_%'

    数据是以空格分隔的,如Desc Top、Desc Bottom等。当我使用模式“Desc%”时,查询工作,但当我使用模式“Desc%”时,查询不工作。字段为nvarchar(255)。

    有什么想法吗?

    编辑

    3 回复  |  直到 6 年前
        1
  •  3
  •   DaveE    14 年前

    使用括号“[”&“]”设置要匹配的单个字符类。在您的示例中,SQL应该如下所示:“select*from Table where Field like'Desc[]%”

    CREATE TABLE #findtest (mytext  varchar(200) )
    
    insert #findtest VALUES ('Desc r')
    insert #findtest VALUES ('Descr')
    
    select * from #findtest where mytext like 'Desc[ ]%'
    
    DROP TABLE #findtest
    
    (1 row(s) affected)
    
    (1 row(s) affected)
    mytext
    --------
    Desc r
    
    (1 row(s) affected)
    

    看到了吗 this 文章。

        2
  •  0
  •   MJB    14 年前

        3
  •  0
  •   p.campbell    14 年前

    考虑显式地声明您想要一个空格,使用它的ASCII值?

    SELECT * FROM Table WHERE Field Like 'Desc' + CHAR(32) + '%'