
教えて下さい。
SQLの理解が乏しく、難航しています。
検索対象のデータが複数レコード存在するのですが、
それぞれのレコードの特定の項目を区切り文字で区切
ったデータとして1レコードとして獲得するSQLがあ
ればと思いました。
イメージ)
テーブルA
ID shapeID name
1 1 交通安全
1 2 防火管理
2 1 什器
3 1 セキュリティー
区切り文字","とし、IDを1で検索した表示結果
交通安全,防火管理
教えてgooで調べてみると、「縦方向のデータを横方向
にするのは、SQLは苦手」とありました。
やはり無理なのでしょうか?
宜しくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
>「縦方向のデータを横方向にするのは、SQLは苦手」とありました。
>やはり無理なのでしょうか?
横展開自体は不可能ではありません。(条件が付くけど)
select
ID,
max(decode(shapeID,1,name)) name1,
max(decode(shapeID,2,name)) name2,
max(decode(shapeID,3,name)) name3
from A
group by ID
とか
select
ID,
max(decode(R,1,name)) name1,
max(decode(R,2,name)) name2,
max(decode(R,3,name)) name3
from
(select A.*,row_number() over(partition by ID order by shapeID) R from A)
group by ID
で、横への展開は可能ですが・・
カラム数が固定になるので、予め最大数が判ってないと対応できません。
カンマで1カラムに統合するには、そのような集計関数を作るか、
再帰検索でこねくると出来ないことはありません。
そのような用件が多いのであれば、集計関数を自作すると良いと思います。
(集計関数の自作は、9i以降の機能です)
有難うございます。
>カラム数が固定になるので…
固定なら可能ですよね~
でも、今後このような場合は参考になるのでありがたいです。
>9i以降の機能です
対象のDBが8iでしたので、カラム数が固定でもNGでした。
色々有難うございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- SQL Server これをSQL文で出来るでしょうか? 1 2023/03/26 02:16
- JavaScript html javascriptにてWeb SQLを操作したい。 2 2022/12/16 17:43
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
- その他(データベース) ORMについて 1 2022/06/18 10:07
- Excel(エクセル) 非表示にしたい行をグループ化して折り畳み 4 2022/09/17 20:17
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コンパイルエラーが出ます。助...
-
SQLの書き方を教えて!
-
差し込み後、元データを変更し...
-
フィルターかけた後、重複を除...
-
for whichの使い方
-
エクセルで最後の文字だけ置き...
-
EXISTSを使ったDELETE文
-
外部参照してるキーを主キーに...
-
列番号による項目の取得について
-
エクセルの関数について教えて...
-
不連続サブネットとEIGRPについて
-
IDの欠番
-
SELECT 文 GROUP での1件目を...
-
【VB.NET】日付型の列にNULLを...
-
SQLで特定の項目の重複のみを排...
-
Outlook 送受信エラー
-
JavaScriptの定数名が取り消し...
-
誰か教えてください
-
access2021 VBA メソッドまたは...
-
MySQLの抽出について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ビュー情報(user_views)の参...
-
OR と IN の違い
-
sql文のwhere句について
-
最新から100行のSELECT文
-
階層問い合わせで重複レコード...
-
sqlのテーブル名省略について
-
Oracleのエラースタックトレー...
-
各グループの最終日より一週間...
-
MAX日付のSQLについて
-
表と表領域とデータファイルに...
-
フィールドをデフォルト0にする
-
大文字/小文字の区別しないで検...
-
検索対象のデータが「複数レコ...
-
複数パターンの集計結果を一度...
-
PL/SQL デバック方法:入力を受...
-
テストデータを作成したい
-
SQL 2000 にあった一覧のエクス...
-
SQLの書き方を教えて!
-
コンパイルエラーが出ます。助...
-
差し込み後、元データを変更し...
おすすめ情報