Oracle 数据库查询问题求解答

时间:2022-06-03 04:35:52
最近遇到一个问题,求解答
Oracle 数据库查询问题求解答

大家看上图,这是我的查询语句,语句代码没有整理,凑合着看吧,我现在是子查询和一个外查询,子查询中可以查到数据,也就是 number1 的值是可以查询出来的,但是按照如图所示的查询,查到的值是什么都没有的,我也看了一下外查询的结果,外查询的确是没有结果存在的,现在我想实现的是,子查询的值可以显示出来,也就是 number1 为子查询所查询的数据,另外一个列的值以0代替,请问这个该怎么实现呢?

9 个解决方案

#1


[用左连接,右连接,
引用 1 楼 liuzhijian2008x 的回复:
用左连接,右连接

可是条件不同呀,子查询是查询之前日期的记录,而外查询是查询指定范围内的记录, 子查询有值,总体没值,是你最后面的where条件导致的, 我看明白了,你子查询是2月1日之前的,外面where是 0点到9点的,就是说你 0点到9点没得数据,
引用 3 楼 baidu_36457652 的回复:
子查询有值,总体没值,是你最后面的where条件导致的

对的,是这个问题,但是如何解决呢,我必须显示出子查询的值,但是最后面的 where 条件必须存在,因为对第一个查询进行过滤的,该怎么实现子查询的值照样显示,但是另外一个查不出来的值以0代替,
引用 4 楼 baidu_36457652 的回复:
我看明白了,你子查询是2月1日之前的,外面where是 0点到9点的,就是说你 0点到9点没得数据

对的,就是这个意思,我子查询需要查询2.1号之前的,可是外部查询需要查询2.1号00:00 分到9点的数据,可是外部查询是没有数据的,子查询是有数据的,那如何显示出子查询的数据,但是外查询的数据以0代替,
引用 6 楼 a136838143 的回复:
Quote: 引用 4 楼 baidu_36457652 的回复:

我看明白了,你子查询是2月1日之前的,外面where是 0点到9点的,就是说你 0点到9点没得数据

对的,就是这个意思,我子查询需要查询2.1号之前的,可是外部查询需要查询2.1号00:00 分到9点的数据,可是外部查询是没有数据的,子查询是有数据的,那如何显示出子查询的数据,但是外查询的数据以0代替

你这个不能用子查询,用表连接的方式才行。,
引用 7 楼 baidu_36457652 的回复:
Quote: 引用 6 楼 a136838143 的回复:

Quote: 引用 4 楼 baidu_36457652 的回复:

我看明白了,你子查询是2月1日之前的,外面where是 0点到9点的,就是说你 0点到9点没得数据

对的,就是这个意思,我子查询需要查询2.1号之前的,可是外部查询需要查询2.1号00:00 分到9点的数据,可是外部查询是没有数据的,子查询是有数据的,那如何显示出子查询的数据,但是外查询的数据以0代替

你这个不能用子查询,用表连接的方式才行。

那表连接的话,不同条件改怎么写呢, 比如你的子查询 看着表a,把不要子查询的部分看着表b
然后 a left join b on 关联字段就可以了]

#1


[用左连接,右连接,
引用 1 楼 liuzhijian2008x 的回复:
用左连接,右连接

可是条件不同呀,子查询是查询之前日期的记录,而外查询是查询指定范围内的记录, 子查询有值,总体没值,是你最后面的where条件导致的, 我看明白了,你子查询是2月1日之前的,外面where是 0点到9点的,就是说你 0点到9点没得数据,
引用 3 楼 baidu_36457652 的回复:
子查询有值,总体没值,是你最后面的where条件导致的

对的,是这个问题,但是如何解决呢,我必须显示出子查询的值,但是最后面的 where 条件必须存在,因为对第一个查询进行过滤的,该怎么实现子查询的值照样显示,但是另外一个查不出来的值以0代替,
引用 4 楼 baidu_36457652 的回复:
我看明白了,你子查询是2月1日之前的,外面where是 0点到9点的,就是说你 0点到9点没得数据

对的,就是这个意思,我子查询需要查询2.1号之前的,可是外部查询需要查询2.1号00:00 分到9点的数据,可是外部查询是没有数据的,子查询是有数据的,那如何显示出子查询的数据,但是外查询的数据以0代替,
引用 6 楼 a136838143 的回复:
Quote: 引用 4 楼 baidu_36457652 的回复:

我看明白了,你子查询是2月1日之前的,外面where是 0点到9点的,就是说你 0点到9点没得数据

对的,就是这个意思,我子查询需要查询2.1号之前的,可是外部查询需要查询2.1号00:00 分到9点的数据,可是外部查询是没有数据的,子查询是有数据的,那如何显示出子查询的数据,但是外查询的数据以0代替

你这个不能用子查询,用表连接的方式才行。,
引用 7 楼 baidu_36457652 的回复:
Quote: 引用 6 楼 a136838143 的回复:

Quote: 引用 4 楼 baidu_36457652 的回复:

我看明白了,你子查询是2月1日之前的,外面where是 0点到9点的,就是说你 0点到9点没得数据

对的,就是这个意思,我子查询需要查询2.1号之前的,可是外部查询需要查询2.1号00:00 分到9点的数据,可是外部查询是没有数据的,子查询是有数据的,那如何显示出子查询的数据,但是外查询的数据以0代替

你这个不能用子查询,用表连接的方式才行。

那表连接的话,不同条件改怎么写呢, 比如你的子查询 看着表a,把不要子查询的部分看着表b
然后 a left join b on 关联字段就可以了]