首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在单行的不同列中获取不同的行值

在单行的不同列中获取不同的行值
EN

Stack Overflow用户
提问于 2017-02-24 09:23:11
回答 1查看 122关注 0票数 0

我的表看起来像这样:

代码语言:javascript
运行
复制
Param_id     Param_value
------------------------
A             1
B             2
C             3
D             4

……诸若此类。现在我只需要Param_id "A“和"B”的值。

现在我希望将param_value放在两个不同的列中,而不是两个不同的行中。但是如果我使用IN子句,它将在两行中返回结果。我想要像下面这样的东西:

代码语言:javascript
运行
复制
Param_value_1       Param_value_2
---------------------------------
1                   2

我不能使用listaggpivot,因为它们不能满足我的需求。有没有其他方法可以做到这一点?我在谷歌上搜索,但找不到任何解决方案。

EN

回答 1

Stack Overflow用户

发布于 2017-02-24 09:48:07

旧的旋转方式。由于您正在寻找parameter_id in ('A', 'B')的参数值,因此将结果列命名为param_value_1param_value_2没有多大意义;为什么不命名为param_value_aparam_value_b呢?(否则,是什么决定了'A'1'B'2,而不是相反?)

所以-回到老的旋转方式(尽管我怀疑PIVOT也可以工作,不管需要什么--除非你使用的是Oracle10或更低版本):

代码语言:javascript
运行
复制
select max(case when param_id = 'A' then param_value end) as param_value_a,
       max(case when param_id = 'B' then param_value end) as param_value_b
from   your_table;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42429166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档