SQL如何找到非空字符串?



我有一列电话号码,其中可能包含一些空字符串。无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 = "

这无疑会表现得更好,当然也更简单,更有可能"正常工作"。

最新更新