-3

我有以下数据。如何查询以仅从所有行和列中获取零。

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

输出应包含具有 0 值的时间戳 c1、c2、c3、c4。请帮忙!!

我的原始数据如下

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 值的列,并带有时间戳

4

5 回答 5

1

只需将条件放在 where 子句中

select * from table_name where  C1=0 or C2=0 or C3=0 or C4=0;
于 2012-12-19T09:05:17.450 回答
1

使用这个查询:

select timestamp,c1,c2,c3,c4
from table
where (c1 = 0 and c2 = 0 and c3 = 0 and c4 =0)
于 2012-12-19T09:05:31.290 回答
0
SELECT * FROM {table} where C1 = 0 and  C2 = 0 and C3= 0 and  C4= 0

如果我的问题是正确的。

假设您的查询有错字,并且您实际上想检查 TF 旁边的其他列两次。你能发布你的表格原理图吗?也许,听上去,您不是在处理小数或某种数字类型。

于 2012-12-19T09:03:44.050 回答
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

不过,这个要求的逻辑超出了我的理解。

拉吉

于 2012-12-19T09:32:37.507 回答
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
于 2012-12-19T10:07:45.133 回答