【问题标题】:SQL Server 2014 - How to select rows with no numerical values in fields?SQL Server 2014 - 如何选择字段中没有数值的行?
【发布时间】:2018-04-18 17:30:09
【问题描述】:

我正在尝试查找电话号码字段中没有任何内容且电子邮件地址字段中没有任何内容的帐户。但是当我使用 ISNUMERIC 函数过滤带有电话号码的记录时,我仍然会得到一些带有数字的记录。

我的代码:

SELECT * FROM MyTable
WHERE (ISNUMERIC(DayTimePhone) = 0 OR DayTimePhone IS NULL)
  AND (DayTimePhone NOT LIKE '%[A-Z]%')
  AND ((EMailAddress IS NULL) OR (EMailAddress NOT LIKE '%[A-Z]%'))

我在 DayTimePhone 字段中得到的数字是:

604.123.1123
(604) 123-1234
(604) 234-5678
(604) 345-6789

【问题讨论】:

    标签: sql sql-server isnumeric


    【解决方案1】:

    您可以使用LEN 按列中字符的长度过滤列,并查找这些字段为空的所有记录。大概是这样的吧?

    SELECT 
        * 
    FROM MyTable
    WHERE
        (LEN(ISNULL(DayTimePhone, '')) = 0 OR DayTimePhone IS NULL)
        AND ((EmailAddressIS NULL) OR (LEN(ISNULL(EmailAddress, '')) = 0))
    

    【讨论】:

      【解决方案2】:

      这些值中除了数字之外还有其他字符,因此它们 ISNUMERIC() 返回 0。您可以执行选择以获取不带特殊字符的值,然后运行您的代码。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-21
        • 2018-02-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多