2

私のテーブル名はtbl1です。フィールドは、、、idです。nametxdate

| ID | NAME    | TXDATE    |
| 1  | RAJ     | 1-1-2013  |
| 2  | RAVI    |           |
| 3  | PRABHU  | 25-3-2013 |
| 4  | SAT     |           |

ここで、txdateが空でない行をチェックするためにselectクエリを使用しtxdate < 2-2-2013、txdateが空である行を選択して再実行したいと考えています。

結果はこんな感じ

| ID | NAME    | TXDATE    |
| 1  | RAJ     | 1-1-2013  |
| 2  | RAVI    |           |
| 4  | SAT     |           |

実行可能な解決策はありますか? ユニオンを使わなくても可能ですか?

4

2 に答える 2

1

あなたが使用しているデータベースとそのデータ型はわかりませんTXDATE

フィールド「タイムゾーンなしのタイムスタンプ」を使用して、postgreSQL 9.2を試しました。

次のように、テーブルに 3 つの行があります。

 ac_device_name | ac_last_heartbeat_time

----------------+-------------------------

 Nest-Test1     |

 Nest-Test3     |

 Nest-Test2     | 2013-04-10 15:06:18.287

次に、以下のステートメントを使用します

select ac_device_name,ac_last_heartbeat_time 
from at_device 
where ac_last_heartbeat_time<'2013-04-11';

1 つのレコードのみを返すことは問題ありません。

 ac_device_name | ac_last_heartbeat_time

----------------+-------------------------

 Nest-Test2     | 2013-04-10 15:06:18.287

次のようなステートメントを試すことができると思います:

select * from tbl1 where TXDATE<'2-2-2013' and TXDATE is not NULL

このステートメントは、私の環境でも機能します。

于 2013-04-10T07:23:05.670 に答える