4

ゼロ行とゼロ列のデータセットを返す SELECT ステートメントを作成することはできますか?

4

5 に答える 5

4

データセットにデータが含まれていない場合でも、データセットには常に少なくとも 1 つの列があります。

SELECT NULL;

編集:

@eggyal で指摘されているように、上記の構文は null 行を返します。

彼のクエリselect null from dual where false;は行を返しません。

于 2016-07-26T10:02:57.687 に答える
1

私の意見では不可能です。少なくとも 1 つの列が表示されますが、行は表示されません。

Select null from yourTable where 1 = 2;
于 2016-07-26T09:56:52.460 に答える
0

いいえ。ただし、行のないクエリを返すことは可能です。テーブルを参照せずにこれを行うには、サブクエリを使用できます。

SELECT NULL FROM (SELECT NULL) AS temp WHERE false;

このクエリには 1 つの (空の) 列がありますが、行はありません。

上記の構造は、場合によって異なるクエリがあり、その後に結果を反復処理するコード ループがあり、条件によってはループをスキップさせたい場合に使用しました。クエリを上記のものに置き換えると、空の結果が返され、ifブロックなしでループがスキップされます。クエリにはテーブル名が含まれていないため、コードのその部分を変更する必要はありません。このためWHERE false、既存のクエリのように条件を追加するよりも、この方法を好みます。

dualPostgreSQL ではこの構成がサポートされていないため、より簡潔な参照よりもこの解決策を好みます。このソリューションは、サブクエリをサポートするすべてのバックエンドで機能します。

于 2021-07-02T15:26:41.367 に答える
0

通常、既存のテーブルから空のテーブルを作成するために使用されます

CREATE TABLE NEW_TABLE_NAME AS
  SELECT * 
  FROM EXISTING_TABLE_NAME
  where 1=2
于 2016-07-26T11:29:50.870 に答える