SQL server 2000与语句用法类似

时间:2008-09-18 20:10:09

标签: sql sql-server

我有一个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”工作正常。

我需要匹配的是具有字符的电话号码。或者只包含零的电话号码。

2 个答案:

答案 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功能。这将显示哪些是/不是数字。

您可能还需要TRIMREPLACE个空格才能获得所需内容。

例如,要查找有效的电话号码,请将空格替换为'',使用ISNUMERIC进行测试,然后使用LEN进行测试。

虽然我会警告你,如果你不得不处理国际电话号码,这将是乏味的。

上面的SQL需要注意的是,SQL Server不了解Regex。