LoginSignup
1
0

More than 3 years have passed since last update.

SQL Server: 10進数よりも表現力のある、並び替え用の進数を調べてみた

Last updated at Posted at 2019-07-03

背景は省きますが、以下の要件を満たす進数を作りたかったので調べてみました。

要件1. 各文字は必ず1桁(16進数のイメージ)
要件2. できるだけ多くの数を表現できる
要件3. SQL Serverで並び替えに使える

結論

char(177)とchar(221)の間のアイウエオを使えばorder byに使える45進数が得られる。

select char(177), char(221)

image.png

調査方法

準備

create table #tmp (val int)

insert into (val) value (1)
insert into (val) value (2)
...
insert into (val) value (500)

実験

select
val, char(val)
from
#tmp
order by val

↓こんな感じでとれる
image.png

このとき、[order by val]と[order by char(val)]で並び替えしたときに得られるレコードの順番が一致するvalの範囲で最も長く連続するものを調べました。

まとめ

アイウエオの並びが一番長そうでしたが、もっと表現力のある方法ご存知の方がいれば教えていただきたいです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0