助け合いフォーラム

OSS-DB

OSS-DB Silver(Ver2.0)
問題ID : 11971
問題を開く
以下のシステム情報関数の説明について間違っているものはどれか。(2つ選択)

この問題はプレミアムコンテンツです。

上に戻る

current_user()

投稿日 2022/06/21

本問だけに限った話ではありませんが、教えてください。自分でネットで調べてみましたが、

コマンドを実行したユーザー情報について、本問などでは
SELECT current_user;
が正しいとされています。

一方で、問題ID12377の解答の実行例においては、
SELECT * FROM current_user
が使われています。

これらは「* FROM」「;」の有無が異なるのですが、
意味


g gzx01277

2022/06/21 02:24

申し訳ございません、記述途中で誤って投稿してしまいました。続きは以下のとおりです。 (1行目のつづき)ヒントを見つけられませんでした。 (末尾のつづき)は同じと考えてよろしいでしょうか。

2022/06/21 12:03

これらは「* FROM」「;」の有無が異なるのですが、
意味は同じと考えてよろしいでしょうか。

そうですね、公式ドキュメントからもそう読めます。
https://www.postgresql.jp/document/13/html/sql-select.html

FROM句
(略)
function_name
FROM句では、関数呼び出しを使用することができます (これは特に関数が結果セットを返す場合に有用ですが、任意の関数を使用することもできます)。 SELECTコマンドの実行中は、この関数の結果は一時テーブルであるかのように動作します。 関数呼び出しにWITH ORDINALITY句を追加した時は、すべての関数の出力列の後に各行の番号の列が追加されます。

それと最下部あたりの「FROM内の関数呼び出し」とかですかね。

実際に実行しても、結果としては同じになります。

% kubectl run postgres --image=postgres --env=POSTGRES_PASSWORD=postgres --env=POSTGRES_USER=postgres
pod/postgres created
% kubectl exec postgres -it -- psql -U postgres
psql (14.3 (Debian 14.3-1.pgdg110+1))
Type "help" for help.

postgres=# select * from current_user;
 current_user
--------------
 postgres
(1 row)

postgres=# select current_user;
 current_user
--------------
 postgres
(1 row)


コメント

g gzx01277

2022/06/23 07:54

ご教示ありがとうございました

この返信に対して
コメントを記入できます

この投稿に対して返信しませんか?