• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:クライアントの自由にソートする)

クライアントの自由なデータソートについて

このQ&Aのポイント
  • データベースのテーブル構成を変更せずに、クライアントが自由にABCDのカラム内のデータをソートする方法について調査しています。
  • 現在の対処方法では、テーブルを変更して順位カラムを追加する必要がありますが、他の方法を模索しています。
  • 例えば、順位を考慮せずにクライアントが指定した順序でデータを取得する方法などがあれば教えてください。

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

  • ベストアンサー
  • mitoneko
  • ベストアンサー率58% (469/798)
回答No.1

 もしかして、質問の趣旨を誤解しているかもしれません。その節はご容赦を。  具体的な名前にすると、たとえば、住所・氏名・電話番号が入ったテーブルがあって、これを、あるユーザーは、「住所・氏名・電話番号」の順番で出したいし、別のユーザーは、「氏名・住所・電話番号」と出したいとか・・・そういう意味でしょうか?  とすれば、これは一つの固定したSQLでやるには無理があるように思います。  たとえば、  select A B C D from TB;  とすれば、出力は、  1 2 3 4  となりますし、  select A C D B from TB;  とすれば、出力は、  1 3 4 2  となります。  では、これを可変にするには、アプリケーションで、ユーザーの要求にあわせて、その場でSQL文を構築してそれをデータベースに発行するしかありません。  アプリの言語がわからないので抽象的になりますが、  "select "と  フィールド名をスペース区切りで希望の順番に並べた文字列  " from TB;"  の3つの文字列を連結して、この結果をSQL文としてデータベースに渡すというカタチです。(動的SQLといいます)

sadoru
質問者

お礼

ご返信ありがとう御座います。 全く誤解はされておりません。助かりました。 ご指示して頂いたことをヒントに下記のように作成致しましたら解決致しました。 ありがとう御座います。 また何かありましたらよろしくお願い致します。 クライアントが希望の順位を予め入力する。 テーブル名 : ORDER1 順位1 | 順位2 | 順位3 | 順位4 A | D | B | C テーブル名 : TB1 (ORDER1の順位通りソートさせる) A B C D 1 2 3 4 Select 順位1 , 順位2, 順位3, 順位4 from ORDER1 Select "&順位1&" , "&順位2&" , "&順位3&" , "&順位4&" from TB1 以上で、クライアントの希望通りにソートができました。ありがとう御座います。