SQL Server 2000 Like语句用法

时间:2020-03-06 14:23:17  来源:igfitidea点击:

我有一个SQL语句,看起来像:

SELECT [Phone]
FROM [Table]
WHERE
(
    [Phone] LIKE '[A-Z][a-z]'
    OR [Phone] = 'N/A'
    OR [Phone] LIKE '[0]'
)

我遇到的问题是带有" LIKE"的where语句。我已经看到了SQL语句,其中作者以上面我使用它们的方式使用了like语句。起初,我以为这可能是正则表达式的一个版本,但是我从中学到了。

有谁熟悉以这种方式使用类似语句。注意:" N / A"工作正常。

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

解决方案

在这里检查。

[]匹配一个字符范围。

我想你想要这样的东西:

SELECT [Phone]
FROM [Table]
WHERE
(
    [Phone] LIKE '%[A-Z]%'
    OR [Phone] LIKE '%[a-z]%'
    OR [Phone] = 'N/A'
    OR [Phone] LIKE '0'
)

尝试使用t-sqlISNUMERIC函数。这将向我们显示哪些不是数字。

我们可能还需要TRIM或者REPLACE空间来获取所需的内容。

例如,要查找有效的电话号码,请用''代替空格,用ISNUMERIC进行测试,并用LEN进行测试。

尽管我会警告我们,但如果我们必须处理国际电话号码,这将很乏味。

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