Sql 选择不带WHERE子句的NOTNULL值
有没有一种方法可以在没有where子句的情况下选择NOTNULL值? 我知道可以这样做Sql 选择不带WHERE子句的NOTNULL值,sql,sql-server,select,null,Sql,Sql Server,Select,Null,有没有一种方法可以在没有where子句的情况下选择NOTNULL值? 我知道可以这样做 SELECT X, Y, Z FROM T WHERE X IS NOT NULL 但是我想知道是否有一种方法可以在select子句中放置空的'filter',而不使用where 也许是这样的 SELECT NOT_NULL(X), Y, Z FROM T Ty不,没有办法,如果你需要过滤掉东西,你需要一个WHERE子句。也就是说,您可以使用ISNULL或COALESCE将返回的值从null更改为其他值您
SELECT X, Y, Z
FROM T
WHERE X IS NOT NULL
但是我想知道是否有一种方法可以在select子句中放置空的'filter',而不使用where
也许是这样的
SELECT NOT_NULL(X), Y, Z
FROM T
Ty不,没有办法,如果你需要过滤掉东西,你需要一个WHERE子句。也就是说,您可以使用ISNULL或COALESCE将返回的值从null更改为其他值您在寻找COALESCE吗 i、 e
我看不出这样做有什么合理的理由,但如果您真的不想要WHERE,可以通过JOIN子句进行筛选
SELECT X, Y, Z
FROM T
JOIN (SELECT null a) Q ON X IS NOT NULL
为什么不:)但是哪里更好呢
这里的诀窍是在JOINON
条件下,如果将任何内容与NULL
进行比较,它总是FALSE
甚至NULL=NULL
都是FALSE
如果您只想检查一个值是否为NULL并在结果中以布尔值的形式返回,那么您可以使用如下方法:
SELECT CASE
WHEN X IS NULL THEN 0
ELSE 1
END AS XisNull,
Y,
Z
FROM T
如果您只是想筛选,那么使用WHERE语句。已为其创建:-)是否要删除WHERE标记?为什么?
select * from t
join
(
select distinct x from t
) t1 on (t.x=t1.x);
SELECT CASE
WHEN X IS NULL THEN 0
ELSE 1
END AS XisNull,
Y,
Z
FROM T