1.情景展示
篩選出指定字段字符長度既不等於18也不等於15的數據。
2.原因分析
第一步:按字符串度進行分組統計;

第二步:篩選數據。

你會發現,只將length=17統計了出來,長度不存在的數據沒有統計出來。
3.解決方案
統計長度為0的數據,統計結果為0;

因為id_card字段為空的行記錄,調用length()后,返回的結果也是null。
所以,只能用is null 來實現。

所以,最終結果為:
--對id_card字段長度既不等於18又不等於15的數據進行統計
SELECT SUM(AAA)
FROM (SELECT COUNT(1) AAA
FROM VIRTUAL_CARD
WHERE LENGTH(ID_CARD) <> 18
AND LENGTH(ID_CARD) <> 15
UNION ALL
SELECT COUNT(1) AAA
FROM VIRTUAL_CARD
WHERE LENGTH(ID_CARD) IS NULL)

