• ベストアンサー

SQLServerのGROUP BYについて

SQLServerでGROUP BYを使用してデータをSELECTする場合について質問があります。 GROUP BYを行う項目に’△△1’と’1△’というデータが入っていた場合、   ※上記の△は半角スペースです。 ’△△1’と’1△’は同じグループとして、グルーピングされるのでしょうか。 Oracleにデータを移行して、GROUP BYをかけると上記のケースはデータ件数が異なります。 これはSQLServerの仕様なのでしょうか。(バージョンは2000です。) お手数ですが、ご教示願います。 

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

  • ベストアンサー
  • x-1919
  • ベストアンサー率52% (91/173)
回答No.1

SQL Server 2000 は持ってないけど、'△△1' と '△1' は区別されたと思いますよ。 後ろの空白文字が無視されて他と思います。 '1' '△1' '△△1' '1△' '1△△' これを GROUP BY すると '1' '△1' '△△1' てな感じに

aikibon
質問者

お礼

回答ありがとうございます。 私が悩んでいたのは、この現象です。 おかげさまで納得できました。

その他の回答 (1)

  • Siegrune
  • ベストアンサー率35% (316/895)
回答No.2

GROUP BYを行う項目の型はなんでしょう? char(3) ’1△△’と’1△’は同じ (’1△’を格納していても、’1△△’となるため) varchar(3) ※Oracleではvarchar(3) ’1△△’と’1△’は別 ※ ’△△1’と’1△’が同じとみなされる? ⇒暗黙の型変換がされてしまって数値に変換されている気がします。。。 SQL Server2000で試す環境がないので、はっきりしたことはわかりませんが。 ・・・項目としているけど実はConvert関数を使っている関数式とかならかなりあやしい。

aikibon
質問者

お礼

お礼が遅くなって申し訳ありません。 ’1△△’と’1△’は同じ (’1△’を格納していても、’1△△’となるため) 私が悩んでいた現象はこれです。 質問が間違っていました。 おかげでたすかりました。ありがとうございます。

関連するQ&A