Mr.Tの場所

特攻野郎Aチームじゃないよー

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  207  : 記事  0  : コメント  840  : トラックバック  43

ニュース

  • 性別:男
  • 猫1:まる
  • 猫2:もろ
  • 猫3:にゃん左部郎
  • タバコ:男は黙ってJPS
[わんくま同盟] C#, VB.NET 掲示板
フィードメーター - Mr.Tの場所

書庫

日記カテゴリ

Mr.Tです、こんにちは。

 

計算列を今まで利用することがなかったのだけど、こういうときに使えるかもとやってみたメモ。

単純なマスターとして、コード、コード名だけを持つテーブルAを考えてみます。

コード コード名
1 これは1番目
10 これは10番目
2 これは2番目

コード、コード名ともにフィールド型はvarcharです。

コードは、基本、数字(0~9)のみを利用するとしている場合、

select コード From A order by コード

とすると、

コード
------------

1   

10

2

------------

になります。

でも、本当に欲しい並びは、

コード
------------

1   

2

10

------------

です。

並び順をフィールドに追加することも可能ですが、それをメンテナンスしなくちゃならないので、
その手間をかけないように、計算列「並び順」を一つ追加します。

今回のコード形態では、桁数をそろえるような00001というパディングがないため、計算列の値には、文字長を示すLen(コード)でいいでしょう。

もし、パディングがあった場合は、文字型→数値型に変換するような式をかけばよいと思います。

更に、このコードには数字以外が入ってきた場合は、文字コード順で並べられても問題ないとします。

後は、並べるときに、

select * from A order by並び順,コード

とすると、

コード
------------

1   

2

10

------------

に出てくることになります。

まあ、本来、コードのフィールドを数値型にしておけば問題ないんですが。

投稿日時 : 2008年1月24日 10:42

コメント

No comments posted yet.

Post Feedback

タイトル
名前
Url:
コメント