• ベストアンサー

オラクルsql developerにて

オラクルsql developerにて お世話になります。 単純なsql文だと思うのですが、下記の where句の内容(解釈)が良く理解出来ないのです。 ||が、「または」でその後の'%'がどう言う意味 なのか分からないのです。 どなたか親切な方、ご教授頂きたく、宜しくお願い 申し上げます。 記 where 商品種類 like 'aa10%' || '%'

  • Oracle
  • 回答数1
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • utakataXEX
  • ベストアンサー率69% (711/1018)
回答No.1

>||が、「または」でその後の'%'がどう言う意味 || は「または」ではなく、文字列の連結です。 つまり where 商品種類 like 'aa10%%' と言う意味になります。 通常の曖昧検索で使用するワイルドカードは % ひとつでよいので、%% とする意味はあまりないように思いますが、プログラムの作り上、このようになっているのではないでしょうか? 例えば、'aa10%'部分がプログラムから与えられるパラメータだとしたら、入力が無かった場合でも(like '%' になるので)商品種類を全部表示するようにする、とか。

miruchoko
質問者

お礼

ご回答ありがとうございます。 ||をずっと「または」だと思ってましたので、 今一解釈出来ないでいました。 大変参考になりました。

関連するQ&A

  • oracle sqlについて

    お世話になります。 Oracle Sqlでの質問を致します。 Oracleのデータで重複データを削除したく 下記の構文を書いたのですが、 右括弧がありませんと言うエラーが出てしまいます。 見た目括弧はちゃんとあると思うのですが、 どこが悪いのか分かりません。 ご親切な方、ご教示くださいます様、 宜しくお願いいたします。          記 DELETE FROM D入庫データ WHERE ID NOT IN ( SELECT MIN(ID) FROM D入庫データ GROUP BY PPID,台車番号,入庫数量,ロット番号,TO_CHAR(登録日時,'yyyy,mm,dd') WHERE TO_CHAR(SYSDATE,'yyyy/mm/dd)=TO_CHAR(登録日時,'yyyy/mm/dd') );

  • Sql developerについての質問

    Sql developerについての質問 いつもお世話になります。 私はオラクル初心者で、オラクル11gを使用しています。 現在、Sql developerでpl/sql(ストアドプロシージャー)を 作成しています。 そして、躓いておりますのは、select内の構文で条件式を書いて いるのですが、そこでコンパイルエラーになってしまっています。 オラクルは、ifではなくdecodeを使うのか、又は条件式の内容が悪いのか 又は長すぎるのかご教示頂きたく、宜しくお願い致します。             記 decode ((a.最大在庫-(b.場内在庫-b.引当数量))>0, a.最大在庫-((TRUNC(b.場内在庫/b.入数,0))*b.入数)AS 補充数量,'-'), (a.最大在庫-(a.最大在庫-((TRUNC(b.場内在庫/b.入数,0))*b.入数))) AS 補充梱包数量,

  • Oracle SQLの、where句内の条件文について教えてください。

    Oracle SQLの、where句内の条件文について教えてください。 下記SQLの(1)と(2)の記述文を教えてください。 (1)例:owner = sys,admin ownerがsysまたは、adminを抽出 (2)例:column_name = '*aaa*' column_nameに「aaa」が含まれているデータ SELECT owner, table_name,column_name FROM all_tab_columns WHERE (1)(Ownerを複数指定)   and (2)(column_nameに、●●が含まれるデータ)

  • InformixのSQL文Where句で

    マイナーなRDBS(?)なので回答をいただけるか不安ですが… InformixのSQL文(単純なSELECT文)で、以下のような 文の場合、検索条件はどのような解釈になるのでしょうか? select  count(*) from  テーブル名 where  カラム名 = ? です。 要は「?」が何を示すのかが分からないのです。 matches(Oracleでいうlike)の場合、Oracleの%が*に、 _(アンダースコア)が?になるらしいのですが、 = で完全一致で繋いださいにどうなるのかが分かりません。 ちょっとした情報でもよいので、ご教授お願い致します。

  • Oracle データベース SQL

    質問させてください。 SQLについて教えてください。 SELECT文を作っていて、WHERE句で データを追加した日の指定(INSERT_DATE)を本日、というのをしたいと思っているのですが、なかなかできません。 格納するデータ型は、CHAR型なので WHERE INSERT_DATE =  TO_CHAR(SYSDATE, 'YYYYMMDD') で、試したのですができません…。 SQL実行はするのですが、該当なしになります。 教えていただければ、助かります。

  • Sql developer .sqlファイル実行

    SQL developerから、.sqlファイルの実行はできないのでしょうか? 家のパソコンに、vurtual Box でwindows上にLinuxをインストールして、そこにOracleを乗っけて勉強しています。 単純に、spcreate.sql を開きたかっただけなのですが、 windows上から、Sqlplusで下記を実行した場合 @?/rdbms/admin/spcreate.sql は、ちゃんとファイルを開くことができます。 しかしwindows上の、SQLdeveloperからは、上記の方にコマンドをうっても、 エラーが発生しました。ファイルが開けません。 とでてきます。 これは、sqldeveloperは、ファイルを開くようなことができない仕様になっているということでしょうか? よろしくお願いいたします。

  • PL/SQLでのSQL文法

    こんにちは。教えてください。 PL/SQLを使うのが初めで戸惑っています。 まず、PROCEDUREで =========================== BEGIN SELECT NAME FROM TABLE1 WHERE NAME='tanaka'; END; / =========================== このように書いて実行させようとすると、「コンパイルエラー」 「INTO句はこのSELECT文に入ります」というエラーが出ます。 SQLの文法的には間違ってないと思うのですが、INTO句とはこれいかに?? ネットでPL/SQLで検索かけて調べたのですがあまりにも初歩すぎて わかりませんでした。 PL/SQLやORACLEのメーリングリストでお勧めがありましたら教えてください。 よろしくお願いいたします。

  • SQL文につける「''」について

    SQL文につける「''」について質問させてください。 WHERE句でPublisherNoが100の行を指定する場合、「'100'」と一重引用符で囲むのか「100」とそのままで良いのかわかりません。 WHERE PublisherNo=100; WHERE PublisherNo='100'; 見ている参考書は、「一週間でオラクルマスターの基礎が学べる本」です。P.205では引用符なし、P.206では引用符ありになっているので混乱しています。どっちでもいいってことなのか…

  • oracleのSQLパフォーマンスについて

    oracleのSQLパフォーマンスについて質問です。 当方、SQLは初めてで、ずぶの素人ですが、SQLパフォーマンスを改善することになりました。 質問の仕方も悪いとは思いますが、お力添えをいただきたいと思います。 【質問1】 DBのレコード件数は、SQLパフォーマンスにどう影響するでしょうか?以下例のようなことが知りたいです。 例1 INDEXのないテーブルに対しSQLを発行する場合、レコード件数の多いDBとレコード件数の少ないDBでは、レコード件数が少ない方が、パフォーマンスが良い? (前提として、検索対象DBは、レコード件数以外に差がないとする) 例2 WHERE句にINDEX項目を使用した場合、DBのレコード件数はパフォーマンスに影響しない (前提として、アクセスパスは適切で、検索対象をうまく絞り込むことができる) 例3 WHERE句にINDEX項目を使用したSQLをレコード件数の多いDBに発行する場合と、WHERE句にINDEX項目がないSQLをレコード件数の少ないDBに発行する場合では、どちらがパフォーマンスがよいのか (前提として検索対象DBは、レコード件数以外に差がないとする) 【質問2】 INDEXをDBに追加すると、INSERT、UPDATE、DELETEの際に、どのくらい影響するのでしょうか? 対象のDBは、5項目あり、400万件くらいのレコードがあります。また、複合項目(2項目)のプライマリキーと、単一INDEXがついており、新たに3項目の複合INDEXを追加しようとしています。 以上、よろしくお願いいたします。

  • ORACLE SQL DeveloperでのDBへの接続でORA 01017エラー

    私は今、ORACLE 10g Express Editionをインストールして、 操作を試しています。 データベースのホームページにて、新しく"ORAUSER"という名前のユーザーを作成し、すべての権限をチェックし、同ユーザーでデータベースのホームページに再ログインすると、正常にログインできます。 SQLPLUSを起動して、作成した"ORAUSER"でCONNECTコマンドを発行しても正常に接続できます。 ただ、Oracle Sql Developerを利用して接続するとORA 01017エラーになってしまいます。 同ツールを利用してSYSユーザーで接続した場合は、正常に接続できます。 なんども試した為、パスワードの記述に間違いは無いとおもうのですが、 何か問題があるのでしょうか。 ご教授よろしくお願い致します。 環境 Oracle Database 10g Express Edition Release 10.2.0.1.0 - Product Oracle SQL Developer Version 1.2.1 Build MAIN 32.13 OS Windows XP Home Edition