sql语句问题

现在有两个条件语句,第一个是
1)我现在写个x视图中取A表的数据。A表中有若干字段,现在想筛选出A表中的B,C,D三个字段中任意一个字段为空的数据。怎么写。
2)同样,同x视图中,A表的E,F,G三个字段。现在想筛选出E≠F+G的的结果。怎么写?

说白了,就是想做这上述两个条件筛选,将不符合条件的数据筛选出来。如果有不明白,可以问下。很急。
满足1),2)的条件即可。如果还有一些更好的筛选条件,我会追加100分。复制粘贴的谢绝。
对了,还有问题:
A表中,有H,I,J字段如果有H字段,则必须有I ,J 字段 且条件必须符合 H=I+J。没有H字段,也不能够有I,J字段。回答完全。必会追100分。十分感谢

一:
select * from A表 where B is null or C is null or D is null; (如果是空字符串 B='' or C='' or D='')
二:
select * from A表 where E<>F+G;

对于问题三。一个表中 不可能存在 有字段 或则 无字段 ,这种表结构是无法设置的。只能说当前字段为空或则非空。
select * from A表 where H=I+J or (H is null and I is null and J is null);
解释 前面等式成立,则符合要求一,因为H非空则 I+J=H ;
后面是当H为null值的时候 H is null and I is null and J is null 必须都为null;
(提示:null=null 这个结果为false;null于任何类型都不相等)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-11
1) select *
from A
where B='' or C='' or D=''
(如果条件是取字段为null值的就把where条件改成:where B is null or C is null or D is null)
2) select *
from A
where E<>F+G
补充回答你的新问题:
表中,有H,I,J字段如果有H字段,则必须有I ,J 字段 且条件必须符合 H=I+J。没有H字段,也不能够有I,J字段
select H=case when H <>'' and H=I+J then H else '' end,
I=case when H <>'' and H=I+J then I else '' end,
J=case when H <>'' and H=I+J then J else '' end
from A
第2个回答  2011-08-11
看我的。
1) select * from x where b='' or c='' or d=''
2) select * from x where (CONVERT(float,E)) != (CONVERT(float,F)) +(CONVERT(float,G))
必须 要转换 先。追问

你好,你的第二个语句大概是什么个意思尤其是 (CONVERT(float,E)) != (CONVERT(float,F)) +(CONVERT(float,G))

追答

(CONVERT(float,E)) != (CONVERT(float,F)) +(CONVERT(float,G))
因为 不知道 你字段E 里存放的什么类型 所以先转换为 float 类型。
转换后成了 e!= f+g
!= 不等于。

第3个回答  2011-08-11
1> select * from A where b is null or c is null or d is null order by id
2>select * from A表 where E<>F+G; 你看符合你要求不
相似回答