2008-09-18 129 views
0

我有一个看起来像一个SQL语句:SQL Server 2000的LIKE语句用法

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

的部分我有麻烦与“喜欢”的where语句。我已经看过SQL语句,作者在上面使用它们的方式中使用like语句。起初,我认为这可能是正则表达式的一个版本,但我从此学到了东西。

是否有人熟悉以这种方式使用like语句。注意:“N/A”工作正常。

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

回答

4

检查here

[]匹配一系列字符。

我想你想是这样的:

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

哇,不知道这是可能的 – Danimal 2008-09-18 20:18:08

+0

忘了分号(真棒用户名),谢谢。该链接正是我所需要的。我无法在Google搜索中找到它。你的例子也帮助了解我的错误。 – 2008-09-18 20:23:31

2

尝试使用t-sqlISNUMERIC功能。这将告诉你哪些是/不是数字。

您可能还需要TRIMREPLACE空间来获得您想要的。

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

虽然我会提醒你,如果你必须处理国际电话号码,这将是乏味的。

上面的SQL注意到的事情是,SQL Server不理解正则表达式。