none
並べ替え空文字 RRS feed

  • 質問

  • DataViewで文字列を昇順で並べ替えると空文字(String.Empty)が先頭に来てしまいます。
    空文字(String.Empty)を最後に持っていく方法はないでしょうか。
    Integerなんかでしたら、Integer.MaxValueに置き換えてやる方法も考えられますが、
    String.MaxValueなるものもありませんし、どうすればいいかと悩んでいます。

     

    2007年8月8日 6:47

すべての返信

  • 列長をorder byに含めてしまえば良いでしょう。SQL Serverの場合ですと、

    order by len(列名) desc, 列名, ・・・

    のような感じで。

     

    #(追記)列が固定長じゃないとダメですね。

    #空白でないものをselectしたものに、空白だけをselectしてunionでくっつけましょう。

    select test1 from test where test1 != '' union select test1 from test where t
    est1 = ''

    2007年8月8日 10:23
    モデレータ
  • trapemiyaさん、回答ありがとうございます。

    今回の場合、SQL Server とかのDatabase Server とは関係のないデータで

    直接DataTableに書き込んでいます。

    したがって、DataViewで直接できないものかと、思案しています。

    すみませんが、よろしくお願いいたします。

     

     

     

    2007年8月10日 12:14
  • IComparableを実装してソート順を制御する例が以下にありますので、参考になるかもしれません。

     

    Custom Filtering and Sorting in DataView
    http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=318609&SiteID=1

     

    #上のスレッドの一番下の発言です。

    2007年8月13日 8:31
    モデレータ
  • trapemiya さん、回答ありがとうございます。

    C#も英語もわからないですが、がんばって研究してみます。

     

    とりあえず、独自で作ったクラスに実装する方向でやっています。

    参考にさせていただきます。

    ありがとうございました。


     

    2007年8月16日 2:30