• ベストアンサー

大文字と小文字の判別について

SQL-SERVERにて大文字と小文字のデータが存在した場合に小文字のデータのみ抽出したいのですがうまくいきません。どなたか教示下さい。 例(データ内 (1)A (2)a  の場合SQLにて(2)のデータのみ取得したい)

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

  • ベストアンサー
  • kokorone
  • ベストアンサー率38% (417/1093)
回答No.2

http://technet.microsoft.com/ja-jp/library/ms141038.aspx あたりが参考になりませんか? 大文字・小文字を区別しない設定となっていませんか?

fca2papa
質問者

お礼

設定が大文字と小文字は区別しない設定となっていることが分かりましたがMasterデータベースの変更が出来ません。再インストールが必要でしょうか?

その他の回答 (3)

  • nora1962
  • ベストアンサー率60% (431/717)
回答No.4

http://msdn.microsoft.com/ja-jp/library/ms184391.aspx create table tbl ( col1 varchar(10) ) insert into tbl values ( 'abcdefg' ) insert into tbl values ( 'ABCDEFG' ) select * from tbl where col1 collate japanese_bin = 'abcdefg'

  • kiy0kiy0
  • ベストアンサー率0% (0/1)
回答No.3

--こんな記述を見つけたのですが、いかがですか? --主旨が違っていたらごめんなさい。 SQL-Serverの設定で、英字の大文字と小文字を区別しない設定(デフォルト設定)の時、大文字小文字を区別する方法。 絞り込む条件のフィールド「FIELD_NAME」の場合の例 SELECT * FROM hoge WHERE convert(varbinary(11), RTrim(FIELD_NAME)) = convert(varbinary(11), 'abcdefghij') 「FIELD_NAME」がvarchar(10)の場合、varbinary(11)と1バイト以上大きい文字指定すること。 varbinary(10)だとFIELD_NAME='abcdefghij'、変数='abcdefghijklmnopqrstu'の時も条件を満たしてしまいます。

  • kokorone
  • ベストアンサー率38% (417/1093)
回答No.1

例がシンプルすぎます。 1)AAA2)aaa3)AaA の場合、何を抽出するのでしょうか? 小文字のデータを含むレコードであれば、 Field1 <> UPPER(Field1) の条件で、いかがでしょうか? 生のデータと、大文字変換したデータが異なる という条件です。

fca2papa
質問者

補足

テーブル内に  KEY Field1  1   AAA  2   aaa  3   AaA のレコードが存在した場合に SQL文でWHERE Field1 ="aaa"とした場合に3レコードヒットしてしまいます。これをKEY=2のみ抽出したいのですがうまくいきません。

関連するQ&A

  • 「・」中点が入った文字列を条件にするとデータを抽出できないです

    「・」中点が入った文字列を条件にすると データを抽出できないです。 うまくいかない例 ------------------------------------------- $name = "春・春・春"; $Sql = "SELECT * FROM TestList"; $Sql .= " WHERE SpName = '".$name."'"; ------------------------------------------- 条件を変数に格納してSQL文に渡すと何も抽出できません。 しかし↓のようにSQLに直に「春・春・春」とすると うまくデータが抽出されます。 うまくいった例 ------------------------------------------- $Sql = "SELECT * FROM TestList"; $Sql .= " WHERE SpName = '春・春・春'"; ------------------------------------------- また「・」中点がない条件では変数で渡しても データがうまく抽出されます。 どうしたら「・」中点が入っている条件を 変数に格納してSQLに渡しても うまくデータが抽出されるでしょうか? どなたかご教示いただけますと助かります。 よろしくお願いします。

  • EXCELVBA 文字の判別

    excelVBAで困っていることがあります。 あるセルに入っているデータの先頭の文字より半角数字5桁の数字を取得する処理を作っています。 先頭5文字をmid関数で取得すれば、簡単だと思っていたのですが、 データを見てみたところ、以下のようなデータがあることがわかりました。 (例)20-500(半角-),20―500(ダッシュ),20500(全角) 20 500(半角スペース),20 500(全角スペース),205(桁落ち),2050あ(全角文字付き) 5桁の数字が取得できると思われる箇所は 半角5桁で取得しなければいけません。 また、正しいデータは半角数字5桁だよ、 ということをユーザに知らせるため、半角数字5桁のデータ以外は それぞれ半角-は赤、ダッシュは青等セルの色を変更する必要があって困っています。 ご教授ください。よろしくお願いいたします。

  • VBSにてDNSサーバなどアドレス抽出

    すいませんが、以下の方法がわかりませんでしたのでご教示ください。 それぞれのテキストファイルにはPCのDNSやWINSサーバのアドレスを記述しています。 テキストファイルを一行ずつ読み込まして、テキスト内に記述しているDNSやWINSサーバのデータを抽出しようとしています。 DNSやWINSのブライマリは一行なので、抽出条件(IF文)で該当した行を出力させていますが、 セカンダリは存在しない場合、一行存在する場合、複数行存在する場合とまちまちで困っております。 例えば、一行ずつ読み込ましているデータの中に、「DNSセカンダリ」という文字があれば、instr関数を使用してその行を取得しています。 ただ複数DNSセカンダリを設定している場合は、次の行も取得しなければいけません。 次の行には「DNSセカンダリ」という文字がないので、抽出対象とできませんが、どうすれば複数行あったときでも抽出させることができるでしょうか。

  • EUCとSJISの変換文字列のレコードへの書込みについて

    WindowsのサーバーでデータベースはMySQLです。今回、Linuxのサーバーからもダイレクトにデータを取得(SQLのselect文)しWindowsのサーバーへデータの書込みを行ったりLinux側へデータ書込みを行うことになりました。 そこでEUC,SJISの文字列変換なのですが、レコードセットなどSelect文でEUCのデータを取得するとSQLでエラーになったり正常に値が取得できません。NKF32でテキストファイル間では変換できるのですが、直接テーブルからデータを取得しEUCまたはSJIS変換をおこないSQLで書込みを行うことはやはりVBでは無理なのでしょうか。ご経験又は知識 をお持ちの方ご教示板だければ幸いです。

  • PHPの文字列型の数字の判別について

    mySQL+PHP初心者です。 $stringNumに格納した値をWhere条件として、 testTable テーブルに格納したレコードから、名前を取得したいのですが、 "0000123"と"123"が同じ結果となってしまいます。   $stringNum = "0000123"; $sql = "SELECT name FROM testTable WHERE (Id = " . $stringNum . " )";   →「鈴木太郎」が抽出 ***********************   $stringNum = "123"; $sql = "SELECT name FROM testTable WHERE (Id = " . $stringNum . " )";   →「鈴木太郎」が抽出 *********************** testTableテーブル   Id    name   0000123 鈴木太郎   0000124 佐々木学 文字列型として、"0000123"と、"123"は、別の値として区別したいのです。 上記のSELECT文だと、"0000123"と、"123"の場合で、 結果が同じ「鈴木太郎」が抽出されてしまいます。 型をしらべると、$stringNumの値は文字列型となっているので、 "0000123"と、"123"は別の値にはるはずですが、 なぜ同じになるのでしょうか? "0000123"と、"123"を別の値として判別させるにはどうすればいいのでしょうか?

    • ベストアンサー
    • PHP
  • SQL・・・分かりません。

    SQLの勉強をしています。 仕事の研修で習っているのですが、基礎的なものを学習しましたが 応用したパターンが全く理解ができません。 例としまして ・AテーブルとBテーブルを結合して、データを抽出する ・Aテーブルに存在しているのに、Bテーブルに存在していないデータも抽出する ・しかし、Aテーブルに存在していないのに、Bテーブルに存在しているはデータは抽出しない ☆抽出方法に二パターン存在する 1つ目も全く見当つかずです。ヒントでよいので教えていただけたらと思います。 意味が分からなかったらすみません。何を描き足したらよいか教えて下さい。 宜しくお願いしたします。

  • 一致したデータ同士を文字列で繋げるには?

    何か方法があれば教えて頂きたのです。 SQLで一致したデータの項目同同士を繋げることができるかどうか。 具体的には以下のような。 ID   名前 ------------ A1 SQL A1 My A2 Server のような結果が出るようなSQL文を作ったとして ID   名前 ------------ A1 SQL,My A2 Server みたいな同じIDの名前を例のようなカンマとかスラッシュ 等を間に入れてつなげていくなんてことできますか? 実際にはSQL文で出たデータを各配列にそれぞれデータに入れて使う のでSQL文の中で仮に出来なくても結果に対してそのようにつなげることが可能かどうか。

    • ベストアンサー
    • MySQL
  • SQLでうまいことビューが作れない

    SQLサーバー2005+マネジメントスタジオでビューを作っています。 以下のデータが存在するときに●のついたデータだけを抽出したいです。 明細IDはユニークとし、明細IDの中で一番日付が新しいものだけを取得したいです。 T-SQLでどのように書けばよいか教えてください。 <データ> 明細ID 日付 111 2010/10/01 111 2010/11/01 111 2010/12/01 ● 222 2010/11/01 ● 333 2010/09/01 333 2010/10/01 ● 444 2010/10/01 444 2010/11/01 444 2010/12/01 ● 555 2010/09/01 ● <出力> 明細ID 日付 111 2010/12/01 ● 222 2010/11/01 ● 333 2010/10/01 ● 444 2010/12/01 ● 555 2010/09/01 ●

  • カンマが入った文字列をIN演算子で利用する方法

    OracleのSQLに関する質問です。 テーブルAの項目「材料一覧」には以下の例のように、カンマ区切りでデータが入っています。 例)1行目…小麦粉,卵,牛乳,大豆   2行目…小麦粉,アミノ酸 また、同じくテーブルAの項目「材料」には一つの材料が入っています。 例)1行目…小麦粉   2行目…卵 このテーブルAの「材料」の値が「材料一覧」に存在しているデータを抽出したくて、 ↓のようなIN演算子を実行してみましたが、対象データが1件も出ませんでした。 SELECT * FROM テーブルA WHERE 材料 IN (材料一覧) 上記のSQLをもう少し加工して、対象データを抽出することは可能でしょうか? 可能であれば、その方法を教えて頂きたいです。

  • 小文字が含まれないデータのみ抽出

    テーブルのデータに大文字、小文字が混在しており、 小文字以外のデータを抽出したいのですが、 何か良い方法はあるのでしょうか? NOT LIKE を 26回書かなければ実現できないのでしょうか? 例)「A123」「a123」「1a23」とあって   「A123」のみ対象