SQL Server 2014 - 如何 select 字段中没有数值的行?

SQL Server 2014 - How to select rows with no numerical values in fields?

我正在尝试查找 phone 数字字段中没有任何内容且 EmailAddress 字段中没有任何内容的帐户。但是当我使用 ISNUMERIC 函数用 phone 数字过滤我们的记录时,我仍然得到一些带有数字的记录。

我的代码:

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

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

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

这些值中除了数字之外还有其他字符,因此它们是 ISNUMERIC() returns 0。您可以执行 select 来获取没有特殊字符的值,然后 运行 你的代码。