• ベストアンサー

ビット単位のソート

あるtextフィールドに '10010000' のように1と0で構成されたものがあります。 このフィールドにたいして、ソート(order by)を行いたいのですが、 何桁目が1のものを上位に、のようなソートを行いたいと思っています。 任意の桁の値だけ取り出せないかと、 型変換、フォーマットや算術演算を使ってみましたがうまくできませんでした。 たとえば '10010000' から5桁目の値 '1' のみを取り出す方法です。 ソートで使用するのが目的です。 わかります方いらっしゃいましたら、よろしくお願いいたします。

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

  • ベストアンサー
  • mtaka2
  • ベストアンサー率73% (867/1179)
回答No.1

TEXT型で入っているんだったら、文字列操作でいけるでしょう。 > '10010000' から5桁目の値 '1' のみを取り出す方法です。 「右から5桁目」=「左から4文字目」ということでしたら、列名XXXに対して、 SELECT … ORDER BY substr(XXX,4,1) DESC で出来るかと思います。 桁数が8桁とはかぎらず「右から5文字目」を見る必要があるなら、 SELECT … ORDER BY substr(XXX,length(XXX)-5+1,1) DESC で。

dede_nd
質問者

お礼

ありがとうございます!出来ました。

すると、全ての回答が全文表示されます。

関連するQ&A