【发布时间】:2018-06-13 00:03:11
【问题描述】:
抱歉,如果这是重复的,我无法在已回答的问题中找到我要查找的内容。
我希望仅查询具有以下格式的字段的记录:数字 (0-9)、连字符 (-)、数字 (0-9)、连字符 (-)、数字 (0-9)。这是我尝试过的:
SELECT *
FROM TABLE_1
WHERE LTRIM(RTRIM(LOC_NAME)) LIKE '[0-9]-[0-9]-[0-9]'
我要查找的结果集是 123456-123-1234。 起初我以为他们可能有空格,所以我修剪了该字段,但 ABOVE 查询仍然没有显示任何结果。 BELOW 查询返回它们,但还有其他结果:
SELECT *
FROM TABLE_1
WHERE LOC_NAME LIKE '%[0-9]-[0-9]%'
但我会得到类似 1-2-3 Place...的结果...
【问题讨论】:
-
您使用的是什么版本的 SQL Server?
-
是每个连字符常量之间的位数。这是个大问题
-
SQL Server 没有像样的正则表达式函数,您可能希望用连字符分割并分别验证每个数字。你需要这个正则表达式模式:[0-9]+-[0-9]+-[0-9]+
-
DhruvJoshi- 我使用的是 SQL Server 2012 scsimon- 是的,它们应该是常量
标签: sql sql-server tsql