- ベストアンサー
PL/SQLのコード
DBの中のVIEWにこのようなコードがありました。 SELECT AAA, BBB, MAX(CCC) AS CCC FROM TABLE SELECTのなかにある’MAX(CCC) AS CCC’という部分が 分りません。関数なのでしょうか、本で調べてみたのですが のっていませんでした。 どなたか分る方はいませんでしょうか。 宜しくお願い致します.
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Haizyさんのおっしゃる通り、MAX(CCC)をCCCという列名とする指定です。 値を集計したものや、今回のように最大値を関数を使用して取得した場合にテーブルやビューを検索するときに使用します。 また、テーブルを複数組み合わせて使用する場合にも便利です。 たとえば、、 テーブル Table_A 列 aaa bbb ccc テーブル Table_B 列 aaa bbb ccc dddd Table_AとTable_Bを結合して検索したい場合、 select A.aaa as aaa, A.bbb as bbb, A.ccc as ccc, B.ddd as ddd from Table_A A, /* Table_A をAという別名にする */ Table_B B, /* Table_B をBという別名にする */ where A.aaa = B.aaa and A.bbb = B.bbb and A.ccc = B.ccc; aaa, bbb, cccはどちらのテーブルの列を使用するか明示しないとエラーになります。 でも、これがビューで作成されていてA.aaaなんて指定をして検索するのはイヤですよね。 また、よく英字で短縮した名称を使用している場合もありますが。 select aaa as 伝票番号, bbb as 明細番号 form Table_C とかするとわかりやすいですよ。 別名がちゃんと指定されていればビューで使用している列が変更されても問題が発生しない場合もあります。
その他の回答 (2)
- Haizy
- ベストアンサー率40% (404/988)
補足に対する回答です。 >MAX()とは関数でしょうか? はい、関数です。 select条件にかかったものの最大値を返します。 この場合CCC列の最大値ですね。 ※逆に、min()関数というのもあります。 参考になれば。 でわ
- Haizy
- ベストアンサー率40% (404/988)
こんにちは。 MAX(CCC) を CCC という列名前にする。 でしょう。 MAX(CCC) のままだと、その他のSQL文から、そのVIEWの値を呼び出したい時に「列名指定」が困るからです。 自信はありませんが、参考になれば。 でわ
補足
ありがとうございます。 もうひとつ質問なのですが、 MAX()とは関数でしょうか? すいませんお願い致します。