2017-09-14 40 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