在单个postgreSQL查询中选择不同条件下的元素?

在单个postgreSQL查询中选择不同条件下的元素?,sql,postgresql,Sql,Postgresql,我是SQL新手,我想知道是否可以在单个查询中使用不同的条件从表列中选择每一列。例如:假设我有一个表,表中有三列名为“名称”、“生日”和“薪资”。当生日或薪资为空时,我想从名称中选择,但如果生日和薪资本身为空,我只想从名称和薪资中选择。例如,如果一行有名称、无生日和薪资,则只会选择名称和生日。在postgreSQL中有这样做的方法吗?postgreSQL中SQL查询中的列是固定的,而Informix中可以有可变的列结果集。有。然而,有一些方法可以解决这个问题 使用JSON和monster CASE

我是SQL新手,我想知道是否可以在单个查询中使用不同的条件从表列中选择每一列。例如:假设我有一个表,表中有三列名为“名称”、“生日”和“薪资”。当生日或薪资为空时,我想从名称中选择,但如果生日和薪资本身为空,我只想从名称和薪资中选择。例如,如果一行有名称、无生日和薪资,则只会选择名称和生日。在postgreSQL中有这样做的方法吗?

postgreSQL中SQL查询中的列是固定的,而Informix中可以有可变的列结果集。有。然而,有一些方法可以解决这个问题

使用JSON和monster CASE语句

使用HSTORE和monster CASE语句

使用JSON和函数灵活组装信息

使用HSTORE和一个函数灵活组合信息

我的建议是,如果您真的想这样做,如果您至少使用9.1版本,并且即使没有扩展也可以安装扩展或9.2版本,那么带函数的JSON将是最好的方法。这不是非常容易做到的,需要一些练习,但这是可能的


另一个选项是在找不到值的地方返回NULL,并在客户端处理。

您能用示例数据说明您的问题吗?@Macklin。SQL查询中选择的列是固定的,因此不能返回变量列。在您的情况下,有些列可能是空的,应用程序层可能需要弄清楚如何处理它们。请编辑您的问题以提供样本数据、样本条件和样本查询输出,以便我们了解您的需求。现在,你不太可能得到任何答案。