有沒有方法可以在沒有where子句的情況下選擇非空值? 我知道它可以像這樣SELECT NOT NULL無WHERE子句的值
SELECT X, Y, Z
FROM T
WHERE X IS NOT NULL
但要做我想知道是否有把空「過濾器」 SELECT子句中不使用其中
也許是這樣的一種方式?
SELECT NOT_NULL(X), Y, Z
FROM T
泰
有沒有方法可以在沒有where子句的情況下選擇非空值? 我知道它可以像這樣SELECT NOT NULL無WHERE子句的值
SELECT X, Y, Z
FROM T
WHERE X IS NOT NULL
但要做我想知道是否有把空「過濾器」 SELECT子句中不使用其中
也許是這樣的一種方式?
SELECT NOT_NULL(X), Y, Z
FROM T
泰
沒有,也沒辦法,如果你需要過濾的東西了,你需要一個WHERE子句。也就是說,您可以使用ISNULL或COALESCE將null返回的值更改爲其他值。
您是否在尋找COALESCE?
即
SELECT COALESCE(HasBananas, 'No') FROM Sometable
我不能看到一個健全的理由這樣做,但你可以通過JOIN子句過濾器,如果你真的不想要一個WHERE。
SELECT X, Y, Z
FROM T
JOIN (SELECT null a) Q ON X IS NOT NULL
爲什麼不:)但在哪裏好多了。
這裏的竅門是在JOIN ON
條件:如果你有NULL
比較的東西,它總是FALSE
甚至NULL=NULL
是FALSE
。
select * from t
join
(
select distinct x from t
) t1 on (t.x=t1.x);
如果你只是要檢查,如果值爲NULL,並返回它作爲你的結果布爾值,那麼你可以使用這樣的事情:
SELECT CASE
WHEN X IS NULL THEN 0
ELSE 1
END AS XisNull,
Y,
Z
FROM T
如果您只是想過濾,然後使用WHERE語句。它已創建它:-)
你想刪除WHERE標記?爲什麼? –