0. 実験ユーザー「dicdic」でコネクトする。
SQL> conn dicdic/Oracle11g
接続されました。
SQL>
|
1. 【SQLを使った計算】 Dual表に対して計算結果を問い合わせる。
SQL> SELECT 8*4 FROM DUAL;
8*4
----------
32
SQL>
|
2. ちょっと見出しを変えてみる。スペースを空けて別列名を定義することもできる。
SQL> SELECT 8*4 かけざん FROM DUAL;
かけざん
----------
32
SQL>
|
3. 【Nullを使った計算式】 Nullを計算に入れると、必ず答えはNullになる。
なるほど、Nullはゼロという扱いでもないんだな。でもエラーにもならないし。0というか、無ってかんじかな。
SQL> SELECT 8+Null かけざん FROM DUAL;
かけざん
----------
SQL>
|
4. 【文字と計算】 計算式に文字を入れたらエラーになる。こりゃ当然か...。文字列だか数式だかわからんからしょうがないよね。
SQL> SELECT 8*Nul かけざん FROM DUAL;
SELECT 8*Nul かけざん FROM DUAL
*
行1でエラーが発生しました。:
ORA-00904: "NUL": 無効な識別子です。
SQL>
|
5. いちおう、四則演算の規則に従うらしい。
SQL> SELECT 8*4+10/2 四則演算 FROM DUAL;
四則演算
----------
37
SQL>
|
6. カッコにも対応。
SQL> SELECT 8*(4+1) かけざん FROM DUAL;
かけざん
----------
40
SQL>
|
7. シングルコーテーションで括ると文字として認識される。
SQL> SELECT '8*4' もじ FROM DUAL;
も
---
8*4
SQL>
|
8. ダブルコーテーションだとエラーになる。
SQL> SELECT "8*4" もじ FROM DUAL;
SELECT "8*4" もじ FROM DUAL
*
行1でエラーが発生しました。:
ORA-00904: "8*4": 無効な識別子です。
SQL>
|
9. 列の別名はダブルコーテーションで括ってもよいのね。ややこしいなぁ。
SQL> SELECT '8*4' "もじ" FROM DUAL;
も
---
8*4
SQL>
|
10. 【0による除算】 これはエラーになって当然だよね。
SQL> SELECT 100/0 FROM DUAL;
SELECT 100/0 FROM DUAL
*
行1でエラーが発生しました。:
ORA-01476: 除数がゼロです。
SQL>
|
11. やはりNullを含む計算の結果はNull。エラーにならないのがなんかへんな感じ...。
SQL> SELECT 100/NULL FROM DUAL;
100/NULL
----------
SQL>
|
|