我有一个SQL语句,如下所示:
SELECT [Phone]
FROM [Table]
WHERE
(
[Phone] LIKE '[A-Z][a-z]'
OR [Phone] = 'N/A'
OR [Phone] LIKE '[0]'
)
我遇到问题的部分是带有“LIKE”的where语句。我已经看过SQL语句,其中作者使用like
语句,就像我上面使用它们一样。起初,我认为这可能是正则表达式的一个版本,但我已经学会了。
是否有人熟悉以这种方式使用like语句。注意:“N / A”工作正常。
我需要匹配的是具有字符的电话号码。或者只包含零的电话号码。
答案 0 :(得分:4)
检查here。
[]匹配一系列字符。
我想你想要这样的东西:
SELECT [Phone]
FROM [Table]
WHERE
(
[Phone] LIKE '%[A-Z]%'
OR [Phone] LIKE '%[a-z]%'
OR [Phone] = 'N/A'
OR [Phone] LIKE '0'
)
答案 1 :(得分:2)
尝试使用t-sql
ISNUMERIC
功能。这将显示哪些是/不是数字。
您可能还需要TRIM
或REPLACE
个空格才能获得所需内容。
例如,要查找有效的电话号码,请将空格替换为'',使用ISNUMERIC
进行测试,然后使用LEN
进行测试。
虽然我会警告你,如果你不得不处理国际电话号码,这将是乏味的。
上面的SQL需要注意的是,SQL Server不了解Regex。