我有以下数据。如何查询从所有行和列中仅获取零。
Timestamp C1 C2 C3 C4
2012-05-17 1 0 1 0
2012-05-18 0 0 1 0
2012-05-19 1 0 0 1
2012-05-20 0 0 0 0
2012-05-21 0 1 0 0
输出应包含时间戳,c1,c2,c3,c4,其中包含0值。请帮忙!!
我的原始数据如下
Timestamp TF TA TRIM DG
17-05-2012 0 0.02 0 0.922
18-05-2012 0 0.03 0 0.831787611
19-05-2012 0.8 0.037 0 0.317744455
20-05-2012 0.9 0.06 0 0.56
21-05-2012 0 0.05 0 0.528702213
22-05-2012 0 0.078 0 0.428219784
23-05-2012 0 0.027 0 0.391674726
24-05-2012 0 0.09 0 0.826398887
我尝试了以下查询
select timestamp,TF,TA,DG from temp where TF=0 and TF=0 and DG=0
但是我在没有行和列的情况下输出空输出。我希望看到所有列的值为0作为值的时间戳
答案 0 :(得分:1)
将条件放在where子句
中select * from table_name where C1=0 or C2=0 or C3=0 or C4=0;
答案 1 :(得分:1)
使用此查询:
select timestamp,c1,c2,c3,c4
from table
where (c1 = 0 and c2 = 0 and c3 = 0 and c4 =0)
答案 2 :(得分:0)
SELECT * FROM {table} where C1 = 0 and C2 = 0 and C3= 0 and C4= 0
如果我的问题是对的。
假设您的查询有拼写错误,而您实际上想要检查TF旁边的其他一些列。你可以张贴你的表格原理图吗?也许,通过它的声音,你不处理十进制或某种数字类型。
答案 3 :(得分:0)
我认为你正在寻找这个:
SELECT * FROM <tablename> where C1 = 0 OR C2 = 0 OR C3= 0 OR C4= 0;
编辑 - 根据您的评论,我认为这将有效
SELECT [Timestamp],
CASE WHEN TF>0 THEN 0 ELSE TF END AS TF,
CASE WHEN TA>0 THEN 0 ELSE TA END AS TA,
CASE WHEN DG>0 THEN 0 ELSE DG END AS DG
FROM <yourtable>
WHERE TF=0 OR TA=0 OR DG=0
但是,这个要求的逻辑超出了我的理解范围。
拉吉
答案 4 :(得分:0)
我假设你想要将非零值四舍五入:
select timestamp
,ceiling(tf) as c1
,ceiling(ta) as c2
,ceiling(trim) as c3
,ceiling(dg) as c4
from table
where tf=0 or ta=0 or trim=0 or dg=0