2017-09-14 58 views
2

我是从DB,研究包时我看到下面的查询:全选...用Oracle SQL

SELECT ALL TABLE1.CODE, nvl(TABLE1.EXPLANATION, '') as Explanation 
FROM TABLE1; 

我找不到什么是ALLSELECT语句用法,我都知道,使用ALLWHERE具有AND的含义。

请问您能为我清楚吗?

+2

'ALL'被忽略。它在某些数据库中提供了一个与“select distinct”并行的提供。 –

+1

除了质疑'ALL',我还会问'nvl'函数调用的目的是什么。通常我们调用'nvl'来在输入为null时替换一个值,但在这个代码片段中,输入被替换为'null'(Oracle将空字符串视为'null'),所以再次 - 什么意思这种叫做'nvl'的? – mathguy

+0

@mathguy我真的不知道为什么nvl在这里使用,可能是一些其他系统与此查询交互需要的结果是不是null或类似的东西 – Hatik

回答

4

由于documentation指定:

ALL

指定ALL如果你想返回选择的数据库中的所有行,包括重复的所有副本。默认值是ALL

如果有任何其他数据库支持SELECT ALL,我不记得副手。我从来没有见过它在现实世界中使用。

+0

我明白了,它通常是默认情况下存在的,并且与'distinct'相反# – Hatik

+1

ALL是默认选择 – sagi