• 締切済み

SQLサーバーでの正規表現メタ文字について

SQLサーバー2008を使用しています。 SQL文のwhere句で 直前のアイテムの1回以上の繰り返しを意味するメタ文字を教えてください。 Postgresqlであれば、0回以上だと「*」、1回以上だと「+」だと思うのですが、 SQLサーバーだと何にあたるのでしょうか? ぐぐって検索してみたのですが、見つかりませんでした。 どうかよろしくお願いいたします。

みんなの回答

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

関連するQ&A

  • SQL文長の制限

    PostgreSQL8.1.3にて、長いwhere句のあるSELECT文を実行したところ、 「server closed the connection unexpectedly」 のエラーとなってしまいました。 エラーとなったSQL文は317726文字で、 where句のin条件のリスト個数が非常に多くなっています。 試しに、in条件のリスト部分を減らし、 156000文字までSQL文を短く短くしたら、エラーは回避できました。 in条件ではなくor条件に変更すると、エラーとの境目のSQL文長は上記とは異なることから、 SQL文長だけが影響しているとは思えません。 SQL文を改修して、エラーを回避するにしても、ここらへんの限界値がわからないと改修できませんので、 改修の目安(信頼できるSQL文長がどのくらいなのかなど)をご教授お願いします。

  • SQL Serverでの検索時の文字の同一視

    SQL Serverでの検索について教えてください。 【目的】 ・JAVAで作成した検索画面より、SQLServerのテーブルに対して検索をしたい。 ・フリガナ検索で、以下のルールを設けたい  (1)カタカナ小文字(『ッ』『ャ』等)とカタカナ大文字(それぞれ、『ツ』『ヤ』)を区別せず、同一視したい  (2)濁音(『バ』)・破裂音(『パ』)・清音(『ハ』)を区別せず、同一視したい  (3)半角スペースと全角スペースを無視したい  (4)アルファベット小文字(『a』等)とアルファベット大文字(『A』)を区別せず、同一視した ≪例≫  Aテーブル/フリガナ : ケンサク キョウダイ  検索ワード    ・ケンサク キョウダイ(完全一致) ・・・ ○   ・ケンサク キヨウダイ(上記(1)) ・・・ ○   ・ケンサク キョウタイ(上記(2)) ・・・ ○   ・ケンサクキョウダイ(上記(3)) ・・・ ○  という結果にしたい。 【現時点】 ・照合順序をSQL文でしようしたら、  (2)は『AI』で対応できました。  (4)は『CI』で対応できました。 ・(3)はSQL文のWhere句に、半角スペースを無効にする『Replace』と全角スペースを無効にする『Replace』を記述することで対応できました。 ・(1)だけがどうしても対応できません。 →(3)の対応と同様に『Replace』での対応も可能なのですが、9つ程度(『ッ』『ャ』『ュ』『ョ』『ァ』『ィ』『ゥ』『ェ』『ォ』)追加しないといけないので、処理速度の低下が懸念点です。 どなたかいい方法をお持ちの方がいましたら、ご協力お願いいたします。 ■バージョン:10.50.1600.1 以上

  • 正規表現でSQLのエスケープ

    C# 2.0 & SQLServer2000 でプログラムを作成しています。 通常のADOではなく、サードパーティーのDBコンポーネントを使ってDB周りはやっているのですが、その際に SQL 文は自分でエスケープしてやる必要があることに後から気付き、正規表現でSQL文をまとめてエスケープすることはできないかと考えています。 正規表現を使って実現したい事は以下です。 ・文字列中の ' (シングルクォート)を '' (シングルクォート2つ)に置換 ・ただし、 where field = 'xxxx' のように文字列を間に入れている場合の ' は置換しない WEBなどで調べても見つかりませんでした。どなたか正規表現に強い方、教えてください。

  • 正規表現で分かりません

    例えば以下のようなパターンの正規表現チェックがあるのですが、 どのようなものを意味しているか分かりません。 教えていただけますでしょうか。 よろしくお願いします。 以下の情報は調べたのですが。 +(プラス)・・・直前の1文字の1回以上の繰り返しを表現 . (ピリオド)・・・改行コード以外の1文字にマッチするか否か [ ](大括弧)・・・囲みの中に書かれた任意の1文字にマッチするか否か ^([^ ]+) +[^ ]+.+S3.lzh

  • 正規表現[a-z0-9\-\.]* の意味を教えて

    [a-z0-9\-\.]* の意味を教えてください。 preg_matchで確かめてみようと思ったのですが、 よく分かりませんでした。 「半角英小文字」か「数字」か「ハイフン」か「ドット」だと思ったのですが、 「半角英大文字」でも、「""」でも「空白」でも「日本語」でも、1が返ってきました。 「*」を調べたら、「直前の表現の0回以上の繰り返しにマッチ」て書いてあったのですが、 「0回以上」の意味が分かりません。 「すべてに当てはまる」ということなのでしょうか?

    • ベストアンサー
    • PHP
  • SQLで、列名の後ろに「||」 これは?

    基本的なことで申し訳ありません。 SQLのWhere句で、<列名>||'' = 値 という記述があったのですが、 これはどういう意味なのでしょうか? 検索で探そうと思っても、「||''」などの記号を上手く探せなくて・・・ 教えてください。よろしくお願いいたします。

  • PL/SQLでのSQL文法

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

  • 文字クラス外部のメタ文字 「?」

    "/\b([AIUEOaiueo].*?)\b/"が何を言っているか分かりません。 //…正規表現は//で囲む \b…文字クラス外部に記入されるもので単語の境界を表す。    ([AIUEOaiueo].*?)という正規表現文字列で検索対象文字列を検索する。 ()…文字クラス外部に書かれて、サブパターンを意味するようですが、    サブパターンとはグループ化と同じ意味で、ここでは、グループ化して単語([AIUEOaiueo].*?)と書いているのでしょうか? []…[AIUEOaiueo]は先頭文字がAIUEOaiueoの文字 . …改行を除く全ての文字にマッチ * …0回以上の繰り返し。    この場合、"."で表されている改行を除く全ての文字の繰り返し。 ? …"("の意味を拡張。0回または1回の繰り返し。最短マッチ。    という意味のようですが、分かりません。この"("は何ですか?   検索対象文字のAmerica,Englandを表示させるのに"/\b([AIUEOaiueo].*)\b/"ではダメなのでしょうか? 検索対象文字は「"Japan" "America" "France" "England"」です。

    • ベストアンサー
    • PHP
  • オラクルsql developerにて

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

  • PHP PDO prepare後のsql変更

    $sql = "select item from items"; $pdo->prepare($sql); とした後に $sql に where 句を後付でつけることなど出来ますか?

    • ベストアンサー
    • PHP