Q
SQLの行と逆行
0
A
答えて
3
あなたがアンピボットを使用して試すことができます。ここにデモのサンプルデータを示します。
DECLARE @Table TABLE (
ID INT
,COL1 VARCHAR(3)
,COL2 VARCHAR(3)
,COL3 VARCHAR(3)
,COL4 VARCHAR(3)
)
INSERT INTO @TABLE VALUES
(1,'yes',null,'yes',null)
,(2,null,'yes',null,'yes')
,(3,null,null,'yes',null)
,(4,null,null,null,null)
,(5,null,'yes','yes',null)
,(6,null,null,null,null)
,(7,null,null,null,'yes')
SELECT id
,yes
FROM (
SELECT id
,col1
,col2
,col3
,col4
FROM @TABLE
where coalesce(col1, col2, col3, col4) is not null
) AS cp
UNPIVOT(yes FOR col IN (
col1
,col2
,col3
,col4
)) AS up
union
select id, null from @TABLE
where coalesce(col1, col2, col3, col4) is null
order by id
3
UNION ALL
を行い、1は各COL のnを選択し、最後に一つはどのはい、まったくせずに行に対してSELECT。
select id, 'col1' from tablename where col1 = 'yes'
union all
select id, 'col2' from tablename where col2 = 'yes'
union all
select id, 'col3' from tablename where col3 = 'yes'
union all
select id, 'col4' from tablename where col4 = 'yes'
union all
select id, cast(null as char(4)) from tablename
where 'yes' not in (coalesce(col1, 'x'),
coalesce(col2, 'x'),
coalesce(col3, 'x'),
coalesce(col4, 'x'))
のみ値が「はい」(またはNULL)の場合、最後の選択は、あなたが以下のようにそれを行うことができ、また
select id, cast(null as char(4)) from tablename
where coalesce(col1, col2, col3, col4) is null
1
として行うことができます。
;WITH CTE
AS
(
SELECT
B.ID,
B.yes,
B.col
FROM
(SELECT ID ,
ISNULL(COL1, '') COL1 ,
ISNULL(COL2, '') COL2,
ISNULL(COL3, '') COL3 ,
ISNULL(COL4, '') COL4
FROM @Tbl) A
UNPIVOT
(
col
FOR yes in (col1, col2, col3, col4)
) B
)
SELECT CTE.ID, CTE.yes FROM CTE
WHERE col = 'yes'
UNION ALL
SELECT DISTINCT ID, '' FROM CTE A
WHERE NOT EXISTS
(
SELECT 1 FROM CTE B WHERE
B.ID = A.ID AND
B.col = 'yes'
)
結果:
ID yes
----------- -----
1 COL1
1 COL3
2 COL2
2 COL4
3 COL3
4
5 COL2
5 COL3
6
7 COL4
+0
これは 'yes'値を持つ行を除外します。 –
関連する問題
- 1. Pandasデータフレームとの逆行列
- 2. Swiftの行列逆行列
- 3. Rの逆行列
- 4. 行列の逆行列の決定子
- 5. 実行C#のコードとその逆
- 6. Pythonの疎行列逆行列とラプラシアン計算
- 7. 逆高速または逆kxnxn行列
- 8. 逆行インデックスの作り方
- 9. 回転行列の逆順
- 10. GEOロケーションの逆PHPとSQL
- 11. Matlab + Armadilloと逆行列がクラッシュする
- 12. SQLカウントクエリ行ごとの行数
- 13. SQL注文と行
- 14. Kerasで逆モデルを実行
- 15. 逆ジオロケーション検索を実行
- 16. 入力ファイルからLAPACKへの行列と出力ファイルの逆行列
- 17. numpyの行列の策略 - 逆回行列の合計
- 18. SymPyの行列の逆数ですか?
- 19. 行列の非ゼロ要素の逆数
- 20. フレックスの方向:反応 - ネイティブの行 - 逆
- 21. CUDAの非正方行列のコンピュータ逆行列
- 22. SQL逆クエリは
- 23. 逆SQL LIKE
- 24. 逆順クエリSQL
- 25. SQL行
- 26. JavaScriptの行を逆にする
- 27. Pythonの行列を逆にする
- 28. DataGridViewの行を逆にする方法
- 29. インデックスの行を逆にする、
- 30. SQL Serverの:行
colion-col4ごとに1つ選択します。 – jarlh