命令LIKE'[atoz:a]%'在SQL Server中意味着什么?

hlh*_*406 5 sql sql-server

我从项目中继承了数据库和应用程序,我正在尝试使用数据库查询来调试问题.

查询中有一行内容如下:

WHERE property_title LIKE '[atoz:a]%' 
Run Code Online (Sandbox Code Playgroud)

我很难理解atoz命令正在做什么,因为我之前从未遇到过它 - 我认为它只是说它只允许标题中的字符 - 但是有些标题包含符号,如()或 -

我试过在谷歌上搜索它,但我必须使用错误的术语,因为没有出现.如果有人可以向我解释,或者指向一个非常好的资源!

谢谢

ang*_*son 3

这只是T-SQL 的 LIKE 运算符的一部分:

[ ]
指定范围 ([af]) 或集合 ([abcdef]) 内的任何单个字符。
WHERE au_lname LIKE '[CP]arsen' 查找以 arsen 结尾并以 C 和 P 之间的任何单个字符开头的作者姓氏,例如 Carsen、Larsen、Karsen 等。在范围搜索中,范围中包含的字符可能会根据排序规则的排序规则而有所不同。

您看到的确切表达式:

'[atoz:a]%'
Run Code Online (Sandbox Code Playgroud)

基本上意思是这样的:

  • 首先是任何单个字符,可以是以下之一:
    • atoz, 或者:
  • 然后是任何东西(甚至什么都没有)

请注意,atoz并不表示从到 的任何字符,它的字面意思是 4 个字符, ,和。要从 to 获取任何字符,您可以使用. 表达式中的第二个是多余的,as的意思与 相同。azatozaz[a-z]a[aa][a]

  • 所以这似乎是一个错误... `[atoz:a]` 中的 `a` 重复了两次...并且字符集合 `a, t, o, z, :` * 是 * 有点奇怪。 ... (2认同)