Sql 如何在一行中显示请求?
我有一个select,这个的响应向我显示如下数据:Sql 如何在一行中显示请求?,sql,oracle,Sql,Oracle,我有一个select,这个的响应向我显示如下数据: field 1 | field 2 | field 3 | field 4 -------------------------------------- red | null | null | null null | blue | null | null null | null | green | null null | null | null | yellow
field 1 | field 2 | field 3 | field 4
--------------------------------------
red | null | null | null
null | blue | null | null
null | null | green | null
null | null | null | yellow
它就像一位赞助人,而且总是这样。
我试着只在一行中获取数据,避免nulls
,但是我太迷路了,我不知道怎么做
像这样:
field 1 | field 2 | field 3 | field 4
--------------------------------------
red | blue | green | yellow
有人能帮我一把或给我一些建议吗
提前感谢。您可以使用
MIN
或MAX
功能进行设置。
如果不希望获取任何行,则包含NULL
select MIN(field1), MIN(field2), MIN(field3), MIN(field4)
from T
sqlfiddle:您可以使用
MIN
或MAX
函数来设置它。
如果不希望获取任何行,则包含NULL
select MIN(field1), MIN(field2), MIN(field3), MIN(field4)
from T
SQLFIDLE:您需要提供一些关于您的select的信息。您的意思是从(您的查询)中选择max(字段1)、max(字段2)、max(字段3)、max(字段4)?@Paplusc-只要您确定每个列都有一个值,上面的答案是可以的。如果不是这样,那么结果集中的数据将丢失。如果您对数据不确定,应该使用
listag()
,而不是MAX()
,以便将所有非空语句放入结果集中。您需要提供一些有关select的信息。您的意思是从(您的查询)中选择MAX(字段1)、MAX(字段2)、MAX(字段3)、MAX(字段4)之类的内容吗?@Paplusc-只要您确定有一个单一值,即每列为空,那么上面的答案是可以的。如果不是这样,那么结果集中的数据将丢失。如果您对数据不确定,则应使用listag()
,而不是MAX()
,以便将所有NOTNULL语句放入结果集中。它完成了工作,我可以使用MAX()修复它:)非常感谢你!它成功了,我可以用MAX()来修复它非常感谢你!