SQL文で 直接値を計算する時、 SQL Severだと 「 select 20+3 」と書きます。
ORACL だと 「 select 20 + 3 from dual」 と書きます。
教科書にも載っているし、常識以前の問題です。
私は、SQL_Server とORACLEの差を極力なくして、可能な限り、共用できるように記述してます。
そのために、 SQL SERVER上に Scott/Tigerのユーザーを作り、 「DUAL」Table : char(1) 要素は 'X' の一件というテーブルをつくって、Oraclとの差を縮めてます。
当然、sql server上で 「select 2+ 3 from dual 」 が実行できます。
それを見た2、3年生から予想外の突っ込みが入りました。「SQL Server でも、直接実行コマンド(dual文のことらしい)が使えるんですか!」と。
よく聞いてみると、ORACLで直接計算するときは "select 式 from DUAL" MS_SQLでは "select 式" と書くのが常道で、それが"おまじない"だと教わったそうです。
MS_SQLに From句が不要というのが変だと思うですが、仕様なので仕方がない。
SQL文はTableに作用するので「直接式でTable要素を使わずとも触媒として記述するものだ」と理解すれば、おまじない感はなくなるはず。なぜおまじない感のまま放置するのだろう。
Oracle上では DUALは SYS領域にDUALという名称のTABLEがあり要素は"X" が一件入ってます。 この辺りのことを書いている教科書ってないのかな。おまじないで誤魔化す解説書も問題ですが、頭から覚えるのでなく、疑問を持ち、探究して欲しいですね。