使用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 或键

获取熊猫中NaN值的所有行和列位置[重复]

如何根据行Spark DataFrame的数组值创建新的行和列[重复]

JavaFX:按行和列获取节点

我想拆分数据并按行和列获取值

将带有html标签的列值转换为带有行和列的sql视图