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 来获取没有特殊字符的值,然后 运行 你的代码。
我正在尝试查找 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 来获取没有特殊字符的值,然后 运行 你的代码。