-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の横にある他の列を2回チェックしたいとします。テーブルの回路図を投稿できますか?たぶん、それの音によって、あなたは小数またはいくつかの数値タイプを扱っていません。

于 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 に答える