SQL server 2000 Like 语句用法
Posted
技术标签:
【中文标题】SQL server 2000 Like 语句用法【英文标题】:SQL server 2000 Like Statement Usage 【发布时间】:2008-09-18 20:10:09 【问题描述】:我有一个如下所示的 SQL 语句:
SELECT [Phone]
FROM [Table]
WHERE
(
[Phone] LIKE '[A-Z][a-z]'
OR [Phone] = 'N/A'
OR [Phone] LIKE '[0]'
)
我遇到问题的部分是带有“LIKEs”的 where 语句。我已经看到 SQL 语句,其中作者以我上面使用它们的方式使用了like
语句。起初,我认为这可能是正则表达式的一个版本,但后来我学会了。
有没有人熟悉以这种方式使用 like 语句。注意:“N/A”工作正常。
我需要匹配的是有字符的电话号码。或只包含零的电话号码。
【问题讨论】:
【参考方案1】:检查here。
[] 匹配一系列字符。
我想你想要这样的东西:
SELECT [Phone]
FROM [Table]
WHERE
(
[Phone] LIKE '%[A-Z]%'
OR [Phone] LIKE '%[a-z]%'
OR [Phone] = 'N/A'
OR [Phone] LIKE '0'
)
【讨论】:
被遗忘的分号(很棒的用户名),谢谢。该链接正是我所需要的。我在谷歌搜索中找不到它。你的例子也帮助我认识到了错误。【参考方案2】:尝试使用t-sql
ISNUMERIC
函数。这会告诉你哪些是/不是数字。
你可能还需要TRIM
或REPLACE
空格来获得你想要的。
例如,要查找有效的电话号码,请将空格替换为 '',使用 ISNUMERIC
进行测试,并使用 LEN
进行测试。
虽然我会警告你,但如果你必须处理国际电话号码,这将是乏味的。
上面的 SQL 需要注意的是,SQL Server 不理解正则表达式。
【讨论】:
感谢您的回复。我想过使用 IsNumeric 函数,但如果我没记错的话,那个函数是有问题的。我确实必须处理国际电话号码,这就是为什么我认为这个解决方案不适合我。非常感谢!以上是关于SQL server 2000 Like 语句用法的主要内容,如果未能解决你的问题,请参考以下文章