【发布时间】:2017-10-31 16:16:09
【问题描述】:
我正在处理具有键值对的查询
学生
StdId StuName phnNum
1 John 87678
student_meta_data
S.NO field_name field_value StdId
1 college St.Anns 1
2 Address Arizona 1
3 IdNum 321 1
4 Subject Maths 1
5 Marks 90 1
6 Subject Physics 1
7 Marks 80 1
我想从 student_meta_data 表中获取数据,为此我编写了如下查询,
select
case when student_meta_data.field_name = 'Subject' Then field_value end as subject
case when student_meta_data.field_name ='Marks' Then field_value end as marks
case when student_meta_data.field_name = 'IdNum' Then field_value end as IdNum
from student_meta_data
where student_meta_data.StdId=1
&& student_meta_data.field_name in ('Subject')
对于上述查询,我正在获取如下记录,
subject marks IdNum
null null null
我希望获取如下记录,
subject marks IdNum
Maths 90 321
Physics 80 321
你能在这方面提出建议吗?提前致谢。
【问题讨论】:
-
MAX(case...end) subject... GROUP BY something - 并且(显然?)最后失去了主题条件。
-
@Strawberry 我也尝试使用 MAX(case ...) 函数。但它不起作用
-
我认为你应该从 where 子句中删除第二个条件
-
@Harshil 我也尝试删除它,但没有运气