使用SQL获取行和列取决于值? [重复]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用SQL获取行和列取决于值? [重复]相关的知识,希望对你有一定的参考价值。
这个问题在这里已有答案:
我有几个包含行和列的表。在某些情况下,有一个X,有些则没有。现在我想得到所有有X的行列对。
这可能与SQL有关吗?是否可能以其他方式?
我有一个想法是使用case
,但我需要对所有col / row组合进行硬编码。
例
表:
rowNo| col1 | col2 | colN
-----|------|------|----
row1 | X | |
row2 | X | X |
rowN | | |
预期结果:
| row | col |
| ----|---- |
| row1|col1 |
| row2|col1 |
| row2|col2 |
答案
你可以使用union all
:
select t.rowno, t.col
from ( select rowno, col1 as col
from table t
union all
select rowno, col2
from table t
. . .
) t
where col = 'X';
如果你正在使用SQL Server
,那么你可以apply
:
select t.rowNo as row, tt.col
from table t cross apply
( values (col1), (col2), . . . ,(coln)
) tt(col)
where tt.col = 'X';
以上是关于使用SQL获取行和列取决于值? [重复]的主要内容,如果未能解决你的问题,请参考以下文章
基于行和列位置的 SQL UPDATE 值,没有 ID 或键