私は以下のようにテーブルEmployeeを持っています。変更列には、アプリケーションを通じて値が変更された列の名前が含まれます。この列のデータはコンマで区切られています。私は結果が行ごとに1つの変更を持つようにこのテーブルを照会する必要があります。つまり、Changeカラムのデータをコンマで区切り、対応するローをフェッチします。私はどこから始めるべきかわからない!助けてください。 列に基づいて行をフェッチするSQLクエリ
0
A
答えて
2
あなたは、Oracleのregexp_substr
機能を使用することができ、見てみましょう:
select distinct Id, Name, Address, trim(regexp_substr(Change,'[^,]+', 1, level))
from Employee
connect by regexp_substr(Change, '[^,]+', 1, level) is not null;
これはあなたのChange
列にカンマ区切りの任意の数のために働く必要があります。
ここrexexp_substr機能で見るドキュメント:https://docs.oracle.com/cd/B12037_01/server.101/b10759/functions116.htm
1
ここで私はREGEXP_SUBSTRを使用して試してみましたがマルチセットレベルに本当に感謝
with temp as
(
select id, name, address, change from testemp
)
select id,name,address,trim(regexp_substr(change, '[^,]+', 1, levels.column_value)) change
from temp t,
table(cast(multiset(select level from dual
connect by level <= length (regexp_replace(change, '[^,]+')) + 1)
as sys.OdciNumberList)) levels;
関連する問題
- 1. 日付クエリに基づいてSQL行をカウントする
- 2. SQL:列に基づいて一意の行を更新する
- 3. 2列に基づいて行を列に動的に変換するMysqlクエリ
- 4. は、クエリ文字列に基づいて
- 5. sql - @curRow列に基づいて
- 6. SQLクエリ - カウント条件に基づいてレコードを選択する
- 7. SQLのパラメータに基づいてクエリを変更する方法
- 8. SQL Reporting Servicesのパラメータに基づいてクエリを編集する
- 9. SQLテーブル内の2つのレコードに基づいて1つのテーブルからレコードをフェッチするクエリ
- 10. Enterprise Architect:タグ付き値に基づいてパッケージ/要素をフェッチするMy SQLクエリ
- 11. 最大値に基づいてフィルタリングするSQLクエリ
- 12. URLに基づいて異なるMySQLクエリを実行する
- 13. ボタンアクションに基づいてSQLクエリを変更します。
- 14. SQL Serverクエリの場所に基づいて列を選択します。
- 15. 列に基づいて重複する行を削除する方法SQL
- 16. 列の値に基づいてクエリの結果から行を除外する
- 17. SQL - 単一の列を分離し、列データに基づいて新しい列を作成するクエリ。
- 18. SQL Server:クエリで収集された値に基づいて行を選択
- 19. 他の既存の行に基づいて列を更新するSQL UPDATEステートメント
- 20. ランクに基づいてSQLクエリ結果からレコードを取得
- 21. 条件に基づいてSQL Serverの列をシフトする
- 22. SQLの結果に基づいて行を表示する
- 23. いくつかの区切り文字に基づいて行を複数の行に分割するSQLクエリ
- 24. ドロップダウン選択に基づくSQLクエリ
- 25. SQLクエリが、別のクエリに基づいていくつかのレコードを排除
- 26. Oracle SQL:前の行の列の値に基づいて選択する
- 27. Sql:投稿された値に基づいてSQLクエリを更新します。
- 28. クエリ文字列に基づいて値を返す方法は?
- 29. PHP:URLに基づいてクエリを実行しますか?
- 30. SQLクエリは、ユニットIDに基づいて、カンマ区切り形式
完璧@danielのlangemannが含まれています。 –