並び替え(ORDER BY)でちょっとはまった話
SQL Serverに対してSQL文で
SELECT * FROM テーブル名 ORDER BY 項目1
とやった。
取得したデータは配列に落とし込んで使用していたのだが、どうも並び順が一部おかしい。
具体的に言うと"["が数字よりも前に来ている。
しかし手元のVB6で処理しようとすると"["は数字よりも後ろにある事になっている。ちなみにExcel VBAでも"["は数字より後だった。(まぁVBなので当然といえば当然)
これでは具合が悪いので色々調べてみたところ「バイナリ順」で並び替えを行う事ができるようなので、今回はそれで対処する事にした。(バイナリ順は"A"と"a"が厳密に区別されて並び替えられるので、場合によっては弊害がある)
SELECT * FROM テーブル名 ORDER BY 項目1 COLLATE Japanese_BIN
とりあえずこれで"["は数字やアルファベットよりも後ろに来るようになった。