选择包含字母和/或非字母字符的记录

Ano*_*s Z -1 sql-server sql-server-2016

我有一个带有字符串字段 ID 的表,其值如下所示:

 012345678
Run Code Online (Sandbox Code Playgroud)

我想从 ID 字段中选择所有以 0 开头并包含一个字母的记录,例如000A345Bor 0A32C450。我还想选择以零开头并包含-,/ 或空格的记录。

请注意,记录应以 0 开头。

我该如何解决?

Smö*_*ord 8

您可以使用以 0 开头并在其中包含字母的任何内容

WHERE ID LIKE '0%[A-Z]%'
Run Code Online (Sandbox Code Playgroud)

您可以使用 0 开头并在其中包含字符 'A'、'-' 或 '/' 来捕获任何字符

WHERE ID LIKE '0%[-A/]%'
Run Code Online (Sandbox Code Playgroud)

您还可以在一个表达式中组合显式列表和范围。您只需要记住,如果列表包含 a -,您需要先指定它,然后列出其他字符和/或字符范围。例如,要满足您的所有要求,谓词将如下所示:

WHERE ID LIKE '0%[- /A-Z]%'
Run Code Online (Sandbox Code Playgroud)