-1
我有一个表如何选择取决于2结果记录的查询
表一(id,name, start_date)
表B(id(FK to Table a), start_date)
这里是我的问题陈述:
- 如果表b中存在id,则从表b中选择start_date的值e从表a中选择默认的start_date
我可以通过有2个独立的查询来获得逻辑工作,我的挑战是在单个查询中实现它吗? 在单个查询中可以实现吗?
我有一个表如何选择取决于2结果记录的查询
表一(id,name, start_date)
表B(id(FK to Table a), start_date)
这里是我的问题陈述:
我可以通过有2个独立的查询来获得逻辑工作,我的挑战是在单个查询中实现它吗? 在单个查询中可以实现吗?
试试这个:
SELECT
a.ID
, COALESCE(b.start_date,a.start_date)
FROM
TableA a
LEFT JOIN
TableB b
ON a.id = b.Id
谢谢,帮助。对不起,我不是一个普通的SQL程序员,因此没有提供太多的信息。我已经有2个查询的解决方案。只是想进一步优化它。 – netizen 2014-11-07 14:39:54
是有可能在单个查询来实现吗?是。最简单的方法似乎涉及一个OUTER JOIN(左)和coalese函数,或者可能是一个case语句。其他解决方案也可以工作,但是它们依赖于RDBMS,所以RDBMS是什么和什么版本? (MySQL,SQL Sever(2013)?,Oracle(11i)?,DB2)简单地说,在接近无尽的一系列选项中遇到第一个非空值。与左连接一起使用时,如果它不存在,它将产生一个Null值......似乎适合您的尝试。 @AndreiHirsu似乎已经定义了它。 – xQbert 2014-11-06 13:42:32