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

时间:2013-07-22 20:40:32

标签: sql postgresql

我是SQL的新手,我想知道是否可以从单个查询中的每列使用不同条件的表列中进行选择。例如:说我有一个包含三列的表,名为'name''birthday'和'salary'。我想在生日或工资空的时候从名字中选择,但我只想从生日和工资中选择,如果他们自己是空的(即如果一行有名字,没有生日,工资,只有姓名和生日)将被选中)。有没有办法在postgreSQL中执行此操作?

1 个答案:

答案 0 :(得分:0)

PostgreSQL中SQL查询中的列是固定的(与Informix不同,您可以在其中使用可变列结果集)。有。不过有几种方法。

  1. 使用JSON和怪物CASE声明。

  2. 使用HSTORE和怪物CASE声明

  3. 使用JSON和函数灵活组合信息。

  4. 使用HSTORE和函数灵活组合信息。

  5. 我的建议是,如果你真的想要这个,如果你至少有9.1(并且可以安装扩展)或9.2(甚至没有扩展名),那么带功能的JSON将是最佳的前进方式。这不是一件容易的事情,需要一些练习但是有可能。

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