• ベストアンサー

SQLの「句」とはなんですか

gtx456gtxの回答

  • gtx456gtx
  • ベストアンサー率18% (194/1035)
回答No.1

>「句」がどういったものかがわかりません。Order By句とか色々ありOrder Byが何を意味 機能かな? 「式」は、条件などを決定しますが単独では機能を表現できませんが、「句」はSQLの機能を意味する単語って感じと思います。 ソートが必要なら「Order By」句が必要、SELECTで選択範囲を指定するなら「WHERE」句という感じと思います。

mellow91
質問者

お礼

ご回答ありがとうございます!

関連するQ&A

  • 「SELECT ~  FROM テーブル名」の後に続く句は「WHERE句」と「ORDER BY句」以外にありますか?

    最近アクセスのSQL文を学びました。 選択クエリのSQL文で 「SELECT ~  FROM テーブル名」 の後に続く句は 「WHERE句」と 「ORDER BY句」以外にありますか? よろしくお願いします。

  • ORDER BY句を使用しているSQL文に関して質問です。

    ORDER BY句を使用しているSQL文に関して質問です。 SELECT文にてORDER BY句を使用した場合、SELECT結果の件数によってソート順が変わるような事はあるのでしょうか? 事象としては以下の通りです。 以下のCUSTOMERテーブルがあるとします。 |店番|顧客番号|一連番号|一連番号枝番| |MISE|KOKYAKU |ITIREN |IEIRENEDANO | |0001|11111111|00000001|000000000000| |0001|11111111|00000002|000000000000| |0001|11111111|00000003|000000000000| |0001|11111111|00000004|000000000000| |0001|11111111|00000005|000000000000| |0001|11111111|00000005|000000000001| |0001|22222222|00000001|000000000000| |0001|22222222|00000002|000000000000| |0001|22222222|00000003|000000000000| |0001|22222222|00000004|000000000000| |0001|22222222|00000005|000000000000| |0001|22222222|00000006|000000000000| |0001|22222222|00000007|000000000000| |0001|22222222|00000008|000000000000| |0001|22222222|00000009|000000000000| |0001|22222222|00000010|000000000000| |0001|22222222|00000011|000000000000| |0001|22222222|00000012|000000000000| |0001|22222222|00000013|000000000000| |0001|22222222|00000014|000000000000| |0001|22222222|00000014|000000000001| 埋め込みSQLを実行し、上記のテーブルに対し以下の条件でカーソルをオープンしました。 (1)SELECT ITIREN FROM CUSTOMER WHERE MISE = 0001 AND KOKYAKU = 11111111 ORDER BY ITIREN DESC (2)SELECT ITIREN FROM CUSTOMER WHERE MISE = 0001 AND KOKYAKU = 22222222 ORDER BY ITIREN DESC カーソルの1件目をFETCHしたところ、以下のような結果となりました。 (1) |店番|顧客番号|一連番号|一連番号枝番| |MISE|KOKYAKU |ITIREN |IEIRENEDANO | |0001|11111111|00000005|000000000001| (2) |店番|顧客番号|一連番号|一連番号枝番| |MISE|KOKYAKU |ITIREN |IEIRENEDANO | |0001|22222222|00000014|000000000000| 一連番号枝番をORDER BY句のソート条件に追加するか、WHERE句の条件についかすれば事象は解決するのですが、同様のSQLを実行しているのに結果が変わってしまうのがどうしても解せません。 もしご存知の方がいらっしゃいましたら、ご教授頂けると助かります。 テーブルの内容をごちゃごちゃと書いてしまったので、見づらくてすみません。。。 レイアウトがずれてたら更にすみませんm(_ _)m HTMLのタグって使えるんでしょうかね?

  • SQL文の書き方について

    SQLServer2005で、次のような品物の単価の履歴を表すテーブルを作りました。「,」は列の区切りです。 ID,Sort,Name,Price,Effective,Time 1,1,りんご,100,True,2009/4/1 2,3,なし,120,True,2009/4/1 3,2,ぶどう,150,True,2009/4/1 4,4,ばなな,80,True,2009/4/1 5,1,りんご,110,True,2009/4/20 6,3,なし,100,True,2009/4/20 7,3,なし,90,True,2009/4/25 8,4,ばなな,False,2009/4/25 このテーブルから、Effectiveが、Trueで、最新の単価をSort順に抽出するSQL文が判りません。 SELECT * FORM テーブル名 WHERE (Effective=1) ORDER BY Sort に、何を加えれば実現可能でしょうか? どなたか?詳しい方がいらっしゃいましたら、教えてください。 SQL文の初心者なので、簡単なことなんでしょうが、よろしくお願いいたします。入門書を読めば読むほど、こんがらかって、困っております。なお、Sortの部分は、正規表現的に問題があるので、見直そうと考えています。

  • PL/SQLにて、マスタから取得した値をORDER BY句に指定したい

    どなたかお判りになる方、ご教示ください。 ★やりたいこと PL/SQLにて、マスタから取得した値をORDER BY句に指定したい。 (例)以下のようなマスタがあるとします。 -------------------------- ソートマスタ SORT_MST ソート順 SORT_ORDER ソート項目 SORT_ITEM ソート種別 SORT_SBT -------------------------- この「ソートマスタ」の「ソート項目」には、以下のトランザクションテーブルの物理カラム名が格納されています。 -------------------------- トラン TRN 商品種別 ITM_SBT 商品コードITEM_COD 商品名 ITEM_NM 金額  ITM_AMN -------------------------- PL/SQLにて「ソートマスタ」から値取得後、「ITEM_COD ASC,ITM_AMN ASC」という文字列を作成し、「トラン」検索時にORDER BY句に指定したのですが、ORDER BY句が全く効いてくれません。 お忙しいところ恐れ入りますが、ご存知の方、よろしくお願い致します。

  • Order by句でバインド変数を使うには?

    SQL文のOrder by句で2つのバインド変数を用いて、ソートする項目・ソート順を決めたいと思い、以下のようなSQLを作成いたしました。 Select row_Number() Over(Order by Case :ITEM When 'PJコード' then PJコード When '部署コード' then 部署コード end Case :LINE When '1' then DESC When '2' then ASC end .... バインド変数を直接Order by句に入れますと、結果は帰ってくるのですが、バインド変数の値がすべて無視されてデータが出力されます。 以上の理由より、Case文にてバインド変数の値を参照し、ソートする項目と順番を決めております。 上記のソースで実行しますとORA-00907:右かっこがありませんというエラーが表示されます。 2つ目のCase文(:LINE)を消し、最初のCase文だけを残して、並び順(DESC・ASC)を埋め込むと、実行される状態になります。 Oracleのバージョンは11gです。 ご回答よろしくお願いいたします。

  • SQL WHERE, HAVING について

    こんにちは。さっそくですが、 白男川 恵さん著作による 「Oracle Master Bronze 演習問題 SQL基礎I」 の問95について質問させていただきます。 問題文 CAT_ID列の値が20であるPRICE列の最大値を求めたい。 実行すべきSQL文として正しいものを選びなさい。 とあり、正解は (B) SELECT cat_id, MAX(price) FROM itemlist HAVING cat_id = 20 GROUP BY cat_id (C) SELECT cat_id, MAX(price) FROM itemlist WHERE cat_id = 20 GROUP BY cat_id なのですが、 WHERE句の使用法としては 大体の場合 WHERE (ターゲット) = (値) となると思うのですが、ターゲットのところが グループ関数でないのでこの場合は正解としてもよい、 ということでしょうか? 以下のサイトを別のタブで見ていただきたいのですが、 http://www.atmarkit.co.jp/fdb/rensai/tsql05/tsql05_1.html 「WHERE句とGROUP BY句を併用した場合、 WHERE → GROUP BYの順でクエリが評価されるため、 グループ化された結果をWHERE句の段階で利用できないのです。」 「HAVING句とGROUP BY句を利用した場合、 GROUP BY → HAVINGの順でクエリが評価され、 グループ化された結果に対し条件を指定することが可能です。」 http://www.atmarkit.co.jp/fdb/rensai/tsql05/tsql05_2.html 「HAVING句はGROUP BY句によってグループ化が行われたデータに対し、 絞り込みの条件を指定できます。 このため、絞り込み条件に集計関数を含めることが可能です。」 この設問の場合には WHERE→GROUP BYの順でも GROUP BY→HAVING の場合でもWHERE のターゲットがグループ関数で得られた値 で条件指定するわけではないので文法的にも正しく おなじ結果が得られる こういう解釈でよろしいのでしょうか? ご存知の方、教えていただけないでしょうか? よろしくお願いします。

  • SELECT文のソートについて

    SQLのSELECT文で抽出した列Aの値が、例えば1~12であるとして、それを4~12、1~3という具合にソートしたいのですがやり方がわかりません。 ORDER BY句を使えばいいのか、それとも全く別の方法を使うのか教えてください。 よろしくお願いします。

  • SQL ORDER BYにおける条件について

    SQLのORDER BY句について質問です。 項目A,B,Cがあり、  項目AがNULLの場合   → ORDER BY 項目B,項目C  項目AがNULL以外の場合 → ORDER BY 項目A,項目C としたいのですが、どう指定すればいいでしょうか? 色々と調べたところ、CASE文を使用する?のかなと思って いるのですが、具体的には回答を得ていません。 お手数ですが、ご回答宜しくお願い致します。 ※使用DBはOracle10です。

  • 第五文型と前置詞句について

    先日、次のような英文を見つけました。 (1):I found the vending machine out of order. これは (2):The vending machine is out of order. を応用したもののようです。 out ofは群前置詞なので、out of orderは(慣用表現ではありますが)1つの前置詞句になっています。私は今まで(2)のout of orderはShe is in the room.のin the roomのような副詞句として働いていて、The vending machine is(=SV:その自動販売機は存在している)out of order(=副:故障中で)⇒「その自動販売機は故障中である」なのだと考えていました。しかしそうすると(1)についてout of orderをどう扱ったらよいのか悩んでしまいます。 まず、「前置詞句は形容詞句となることはあっても補語にはなることができない」と聞いていたので(of 抽象名詞の件は後述します)、(1)においてout of orderは文の要素になり得ず、形容詞句としてthe vending machineにかかっているのかと考えました。すると(1)は「私はその故障中の自動販売機を見つけた」という意味になります。しかしながら、そうだとすると(2)でもout of orederが形容詞句だということになり、結局前置詞句が補語だということになってしまいます(もしかしてout of orderが副詞句にも形容詞句にもなりうるなんてことがあるのでしょうか)。 どちらにせよout of orderが補語となるのであれば、foundがあることだしout of orderを目的格補語とみて「私はその自販機が故障中だとわかった」とするのが自然だと思います。 ところで、前置詞句が補語になるかどうか、といえば、「of 抽象名詞」がありますよね。 It is of no importance. に見られるような「of 抽象名詞」は前置詞句が補語となりうる唯一の例だと思っているのですが、違うのでしょうか。 out ofもofの仲間なので「out of 抽象名詞」が補語になることもある、ということでしょうか(そうするとorderは抽象名詞といえるのか、という疑問が浮かびます)。それとも「of 抽象名詞」以外にも補語になる前置詞句は色々あって、out of orderもそのひとつ、ということでしょうか(そうすると他にはどんな例があるのでしょうか)。 (ところで先ほどのIt is of no importance.についても(1)のようにI found it of no importance.となりうるのでしょうか。こういう文に出会ったことはないと思うのですが・・・) 別の考え方をすると、第五文型について、「OとCの間にbe動詞を入れたときにO be Cが文として成立する」という定義を聞いたことがありますが(これだとO=Cの場合もOとCに主語・述語の関係があるS V O to doやS V O doingの場合もカバーできるようです)、この定義を用いれば(2)の文章が成立している以上、out of orderが副詞句であるという最初の見解のまま、(1)を第五文型の文として解釈することができますが、そもそも第五文型で副詞句が補語になるなんてことがありうるのでしょうか。この考え方だと、 I found her in the room. も「彼女が部屋の中にいることがわかった」なのか「部屋の中で彼女を見つけた」なのかわからなくなってしまいます。この文でも(1)の文でも前置詞句の前にbeを挟めば問題ないと思うのですが・・・。(1)でI founf the vending machine be out of order.としたら変でしょうか。 長々とすみません。要するに(1)(と(2))の文章の文法的解釈と、前置詞句が補語となるのかについて詳しく伺いたいと思った次第なのです。 考えれば考えるほどこんがらがってしまうので、皆さんの力をお借りしたいと思います。よろしくお願いします。

  • SQL文について

    テーブルにprice1とprice2のフィールドがあります。 単純に安い方から抽出するにはorder by price1でいいのですが price1は通常価格でprice2は特別価格とした場合price1は必ず値が ありますがprice2は任意のものだけ値があります。 price1はもちろんのことprice2は値があるものだけ扱いソートして 抽出するにはどのようなsql文を書けばいいのでしょうか?

    • ベストアンサー
    • PHP