Sql 如何在一行中显示请求?

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

我有一个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
它就像一位赞助人,而且总是这样。 我试着只在一行中获取数据,避免
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()来修复它非常感谢你!