- - PR -
副問い合わせのORDER BY
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-02-16 18:35
まつじんと言います。
実は、現在javaのプログラムからoracle 10gに下記のsql文を送信しようとしました。 しかし、全然受け付けてくれず、しかもoracleクライアント側でも右かっこがありませんとエラーが出ました。いろんなところを調べてみましたが、全然分かりませんでした。 簡単な間違いだとは思うのですが、解決しないのでお力添えをお願いいたします。 select ID, NAME from master.tbl where ID IN(select ID from master.tbl order by ID); | ||||||||
|
投稿日時: 2006-02-16 18:37
すみません。書き忘れましたが、order by ID を取り除くと普通に検索できます。
| ||||||||
|
投稿日時: 2006-02-16 18:43
ORDER BY は何故必要なのですか?
_________________ 囚人のジレンマな日々 | ||||||||
|
投稿日時: 2006-02-16 18:43
SQL*PlusでこのSQLを流した場合はどうでしょうか。同じエラーが出力されますか?
ところで、
はどういう処理結果を期待されていますか? 単純に
で良いような気がするのですが... | ||||||||
|
投稿日時: 2006-02-16 18:45
「右かっこがありません」ってエラーは意味不明ですが、
副問い合わせ内でのORDER BY句は構文エラーのようですね。 なので副問い合わせじゃないSELECT文でORDER BY句を指定するようにしましょう。 #別名つけないとダメかな。 | ||||||||
|
投稿日時: 2006-02-16 18:45
IN() 内にORDER BYを書くからですよ・・・。
IN()内でORDER BYを書く必要性があるとは思えません。 副問い合わせのSQLで必要なのは、取得できた値であり、その並び順は関係ないと思いますが。 取得できた結果をソートするためにORDER BYを用いてください。 | ||||||||
|
投稿日時: 2006-02-16 18:56
囚人さん、いーたさん返事ありがとうございます。
先ほどのコードは途中でorder by された値をROWNUMで番号を振りわけた後に betweenで範囲を指定して取得しようとする前に動きませんでした。 ちなみにSQL*PLUSでも 同じように「右カッコがありません」と表示されてしまいました。 | ||||||||
|
投稿日時: 2006-02-16 18:59
夏椰|。σ)oさん、burton999さん返事ありがとうございました。
構文間違いだったとは気づきませんでした。 教えて頂いたようにやろうと思います。 ありがとうございます。 | ||||||||
