我有一列电话号码,其中可能包含一些空字符串。无NULL
值
SELECT COUNT(CONTACTPHONE2) FROM Auct_ABSENTEEBID
-- ANS 7844
SELECT COUNT(CONTACTPHONE2) FROM Auct_ABSENTEEBID WHERE CONTACTPHONE2 IS NOT NULL
-- ANS 7844
SELECT CONTACTPHONE2 FROM Auct_ABSENTEEBID
(908) 303-****
310-871-****
我们可以看到电话号码之间有空字符串。
SELECT CONTACTPHONE2 FROM Auct_ABSENTEEBID WHERE CONTACTPHONE2 LIKE '%^(?!s*$).*%'
SELECT COUNT(CONTACTPHONE2) FROM Auct_ABSENTEEBID WHERE CONTACTPHONE2 LIKE '%^(?!s*$).*%'
--ANS 0
我使用正则表达式^(?!s*$).+"
,但它不返回任何东西,COUNT
返回0。
我不知道是什么原因引起的。
为什么要使用正则表达式呢?只是做一个空字符串"相比,如:
WHERE NOT CONTACTPHONE2 = "
这无疑会表现得更好,当然也更简单,更有可能"正常工作"。