2016-09-24 57 views
2

這裏是正常執行到從雙表中選擇100在oracle中<number> d或<number> f是什麼意思?

SQL> select 100 from dual; 

     100 
---------- 
     100 

這裏是相同的執行添加'a'到剛剛設置列名的數量100。對於除d和f以外的其他字母,結果將相同。

SQL> select 100a from dual; 

     A 
---------- 
     100 

這裏是相同的執行增加'd''f'到數100

SQL> select 100d from dual; 

     100D 
---------- 
    1.0E+002 

SQL> select 100f from dual; 

     100F 
---------- 
    1.0E+002 

哪裏是它有用嗎?這是什麼意思?

+0

應當'選擇100一從dual'爲了設置別名爲'100'列。注意表達式和別名之間有空格。該空間使'100 f'(整數'100'別名爲'f')和'100f'(浮點數'100.0',無別名)之間的差異。 – axiac

回答

4

df在那裏隱式聲明爲浮點數

1.0E+002scientific notation爲100

100a只是由Oracle解釋爲別名a數值100


正式文檔NUMBER and Floating-Point Literals

enter image description here

˚F˚F指示該數字是(類型BINARY_FLOAT)一個32位的二進制浮點 數。

dd指示該數字是


(類型BINARY_DOUBLE)一個64位的二進制浮點數 數目此行爲的一個例子可以在ROUND() function中找到doc

以下示例說明舍入的區別 NUMBER和浮點數值。數量的值向上舍入 (爲正值),而浮點數四捨五入 朝向最接近的偶數值:

SELECT ROUND(1.5), ROUND(2.5) FROM DUAL; 

ROUND(1.5) ROUND(2.5) 
---------- ---------- 
     2   3 

SELECT ROUND(1.5f), ROUND(2.5f) FROM DUAL; 

ROUND(1.5F) ROUND(2.5F) 
----------- ----------- 
    2.0E+000 2.0E+000 
-2

只是猜測:「f」/「F」後綴表示浮點(因此,尾數和指數的科學記數法)。

「d」/「D」可能是小數? (固定精度的十進制)

谷歌爲Oracle數字類型,也許:-(