お世話になっております。
現在データベースの中に下記のようなデータが存在するとします。
A B C D
1 2 3 4
(Aのカラムに1)
(Bのカラムに2)
と言う具合にデータが入っています。
そこで質問なのですが、クライアントの自由にABCDのカラム内のデータをソートさせるにはどのようにしたらよいでしょうか?
現在は、データベースのテーブルを下記のようにする対処方法しか思いつかないのですが、できれば上記テーブル構成のままソートさせたいのですが何か良い方法は御座いませんでしょうか?
例) クライアントがA D B C の順にソートしたい場合
テーブル名:TB1
A 1 順位1
B 2 順位3
C 3 順位4
D 4 順位2
select * FROM TB1 A ORDER BY 順位 ASC
出力:
1 4 2 3
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といいます)
ご返信ありがとう御座います。
全く誤解はされておりません。助かりました。
ご指示して頂いたことをヒントに下記のように作成致しましたら解決致しました。
ありがとう御座います。 また何かありましたらよろしくお願い致します。
クライアントが希望の順位を予め入力する。
テーブル名 : 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
以上で、クライアントの希望通りにソートができました。ありがとう御座います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- Excel(エクセル) 結合セルのソートについて 5 2022/04/22 11:57
- Oracle Oracleですがsqlで質問です。 サブクエリ内で番号というカラムで昇順の1レコード目を取得したい 3 2023/05/22 10:02
- PostgreSQL 列が存在しないと言われる 2 2023/02/10 18:33
- JavaScript jsonテキストデータの並び替えができるサービスを教えてください 2 2022/08/05 20:16
- PHP PHPSpreadsheetによる書き出し時のページネーション方法について 1 2023/03/20 10:35
- Excel(エクセル) Excelの50音順ソートを全ての行列に適用するには? 4 2022/12/05 11:28
- Excel(エクセル) 重複しているか否かをソートせずに判断する方法ありますか? 2 2022/07/06 21:16
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
列名XXXXが無効です
-
IDENTITY列
-
正規化があっているのかどうか...
-
「マスタ」と「テーブル」の違...
-
sqlserverで集計結果をUPDATEし...
-
[ BETWEEN ] vs [ >= AND <= ]
-
accessのエクスポートエラーに...
-
重複するキーから一番古い年月...
-
Accessにインポートしたら並び...
-
ACCESSのSQLで、NULLかNULLでな...
-
エクセルでテーブルの最終行が...
-
3つ以上のテーブルをUNIONする...
-
SELECT文でのデッドロックに対...
-
2つのテーブルから条件に一致...
-
2つの項目が重複するレコード...
-
accessテーブル作成クエリを実...
-
Access 1レコードずつcsvで出力...
-
UPDATE文で発生するデッドロッ...
-
ACCESS2007 フォーム 「バリア...
-
SELECT時の行ロックの必要性に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
列名XXXXが無効です
-
IDENTITY列
-
isqlの結果の余分な空白
-
クライアントの自由にソートする
-
「マスタ」と「テーブル」の違...
-
[ BETWEEN ] vs [ >= AND <= ]
-
2つのテーブルから条件に一致...
-
ACCESSのSQLで、NULLかNULLでな...
-
オラクルではできるのにSQLSERV...
-
SELECT時の行ロックの必要性に...
-
3つ以上のテーブルをUNIONする...
-
SELECT文でのデッドロックに対...
-
2つの項目が重複するレコード...
-
Access VBA [リモートサーバー...
-
数百万件レコードのdelete
-
ACCESS2007 フォーム 「バリア...
-
Accessにインポートしたら並び...
-
ビューで引数を使いたい
-
ACCESS 一番最新の日付の金額...
-
accessのロック
おすすめ情報