InformixのSQL文Where句での検索条件解釈について
- InformixのSQL文(単純なSELECT文)で、カラム名 = ? の検索条件の解釈について教えてください。
- Oracleでのmatches(like演算子)に相当する検索条件の書き方も教えてください。
- InformixのSQL文におけるカラム名 = ? の検索条件の意味を教えてください。
- ベストアンサー
InformixのSQL文Where句で
マイナーなRDBS(?)なので回答をいただけるか不安ですが… InformixのSQL文(単純なSELECT文)で、以下のような 文の場合、検索条件はどのような解釈になるのでしょうか? select count(*) from テーブル名 where カラム名 = ? です。 要は「?」が何を示すのかが分からないのです。 matches(Oracleでいうlike)の場合、Oracleの%が*に、 _(アンダースコア)が?になるらしいのですが、 = で完全一致で繋いださいにどうなるのかが分かりません。 ちょっとした情報でもよいので、ご教授お願い致します。
- shun10
- お礼率83% (25/30)
- その他(データベース)
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
Informixのことは知りませんが。。。 prepareやexecute immediateで前処理して実行する(動的実行)なら、「?」を使う方法は標準SQL準拠だと思いますが? そういうことであれば、あくまでも「列名=?」は、「=」条件であり、値を可変にしているだけです。 【例】 prepare sql識別子 from 'select count(*) from t1 where c1=? and c2=?' ↓ 変数1←値1 変数2←値2 execute sql識別子 using 変数1,変数2 (変数1が一番目の?、変数2が2番目の?に対応し、値を設定)
関連するQ&A
- SQL WHERE文のノットイコールについて
初歩的な質問ですみません。 Oracle9iでsqlplusで接続しています。 「member_accountテーブルのdelete_flag(VARCHAR2)カラムの値が'1'ではない」ものを抽出したいと考えてます。 ただ、正しい結果が返ってきません。 何が問題でしょうか?よろしくお願いいたします。 ============================================================ SQL> select count(ID) from member_account; COUNT(ID) ---------- 16450 SQL> SQL> select count(ID) from member_account where delete_flag='1'; COUNT(ID) ---------- 107 SQL> SQL> select count(ID) from member_account where delete_flag<>'1'; COUNT(ID) ---------- 0 SQL> SQL> select count(ID) from member_account where delete_flag!='1'; COUNT(ID) ---------- 0 ============================================================ よろしくお願いいたします。
- ベストアンサー
- Oracle
- 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に、●●が含まれるデータ)
- 締切済み
- Oracle
- SQL文
http://okwave.jp/qa/q1599858.html この質問に疑問があります。 回答2で where (column1 || '/' || column2 ||'/' || column3) like '%word1%' ; というアドバイスに対して質問者は where ( concat( column1 , column2 , column3) like '%word1%' ) でできたと返しています。 なぜ、質問者はwhere ( concat( column1 , column2 , column3) like '%word1%' ) というSQL文にいたったのでしょうか? where ( concat( column1 , column2 , column3) like '%word1%' ) では、だめだったのでしょうか?
- ベストアンサー
- MySQL
- 【初歩】項目別の合計件数をSQL一文で取得できますか。
MySQL 5.0.24a 氏名(myname)、組(kumi;1~6組がある)の2カラムからなる マイテーブルがあるとして、次のように組ごとの登録人数を 集計するSELECT文をご教示下さい。 ----------- | 1 | 23名 | ------------ | 2 | 25名 | ------------ | 3 | 25名 | ------------ | 4 | 24名 | ------------ | 5 | 27名 | ------------ | 6 | 22名 | ------------ select count(*) as cnt1 where kumi = '1'; select count(*) as cnt2 where kumi = '2'; select count(*) as cnt3 where kumi = '3'; select count(*) as cnt4 where kumi = '4'; select count(*) as cnt5 where kumi = '5'; select count(*) as cnt6 where kumi = '6'; と、組(kumi)ごとのSQL文を6回発行しなければならないのでしょうか?
- ベストアンサー
- MySQL
- SQL文について
テーブルの結合について教えてください。 (DBはオラクルです) select * from table1,table2 where table1.カラム名=table2.カラム名; で、結合が出来ることは分かりました。 やりたいことはテーブルの結合と、ある期間のデータを持ってきたいのです。 select カラム名 from table1 where カラム名 between '20020213' and '20020218'; で期間を決めて引き出すやり方も分かっています。 一度に結合と期間を決めて引き出すやりかたってどうすればよいですか? それとも不可能ですか? 教えてください。
- ベストアンサー
- その他(プログラミング・開発)
- あいまい条件抽出についてのSQL文について
あいまい条件抽出についてのSQL文について hiroです。 SQL文について、教えてほしいのですが、 下記のようなDatabaseがあったとします。 tableA:カラムA:ABCDE,BCDEA tableB:カラムB:??C?? この場合、例えば、 SELECT * FROM DataBase WHERE tableA.カラムA like tableB.カラムB みたいな感じで、カラムAのABCDEだけを検索するような仕組みを作ることは 可能でしょうか? ※上のSQL文では引っ張れないのは理解できています。 わかる方がいらっしゃいましたら、SQL文を教えてください。 よろしくお願いします。 環境:Oracle 11g
- ベストアンサー
- Oracle
- where文について
2008-10-28のような形式でMYSQLに生年月日を登録しています。 フォームのセレクトボックスにて誕生月のみを取得しlike文では なくwhere文でデータの読み込みを行いたいのですがどうやれば できるのでしょうか? 通常だと "SELECT * FROM テーブル名 where カラム名 = '200-10-28' " でいけると思うのですが誕生月のみの情報で "SELECT * FROM テーブル名 where カラム名 = '10' " とやっても無理ですよね^^; $_POST['birth_month']で誕生月を取得し数字は01~12までです。 ※取得は問題なくできておりわからないのがwhere文の書き方です。 できるだけシンプルな方法で行いたいのですがお分かりになる方が おりましたら是非ご教授お願い致します!
- ベストアンサー
- PHP
- 文字例の比較について WHERE句
文字例の比較について、教えてください。 DELETE_FLAGという項目には、文字列の"1"、もしくはNULLが入っています。 セレクト文でDELETE_FLAGが"1"以外のものを抽出したいのですが、うまくいきません。 以下のSQL文を実行した際に、結果として5件ヒットしてほしいのですが、なぜか0件となってしまいます。 select count(product_id) from hpk_atoz_list_view where delete_flag != '1'; 原因わかりますでしょうか? よろしくお願いいたします。 ============================================================================ SQL> select delete_flag, product_id from product_list_view; DELETE_FLAG product_ID --------------------------------- 0002 1 1003 0002 1 1003 0002 1 1003 0002 0002 8行が選択されました。 SQL> SQL> select count(product_id) from product_list_view where delete_flag != '1'; COUNT(product_id) ---------- 0 SQL> SQL> select count(product_id) from product_list_view where delete_flag = '1'; COUNT(product_id) ---------- 3 SQL> SQL> select count(product_id) from product_list_view where delete_flag is not null; COUNT(product_id) ---------- 3 SQL> SQL> select count(product_id) from product_list_view where delete_flag is null; COUNT(product_id) ---------- 5 SQL> =====以上=====
- ベストアンサー
- Oracle
- sql文のwhere句について
<環境>sqlserver SQLでパラメータが空白であれば全件取得、パラメータに値が設定されている場合には 条件にHITするデータを抽出したいのですが、一本のクエリで抽出することができるのでしょうか? 空白時パラメータは以下のとおり入ってきます。 @no="" …完全一致 @name="%%" …部分一致 例) SELECT * FROM テーブル WHERE (NO = @no) and ((@name IS NULL) OR (@name IS NOT NULL) AND (NAME LIKE @name)) NAMEは上記クエリにて取得できています。 NOのところはどのようにすればよいでしょうか?
- ベストアンサー
- SQL Server
- SQL(Where句)
商品を登録するテーブル(商品テーブル)があって 構造が 商品主コード varchar(5) 商品補助コード varchar(2) 商品名 varchar(10) です。 商品主コードと商品補助コードを一つにして「商品コード」として使用しています。(ex:12345-00) 検索の際、商品コードをインプットボックスに「12345-00」と入力してその商品名を取得したいのですが、上手くいきません。 どなたかお願いします! 現在のSQLは Select 商品名 From 商品テーブル Where 商品主コード || '-' || 商品補助コード Like '%入力された商品コード%' です。
- ベストアンサー
- PostgreSQL
お礼
お礼が遅くなって申し訳ございません。 ご指摘のとおり、「?」は可変でSQLの記述の後に using で値を入れている記述がありました。 ありがとうございました。