列の値に対して演算を行う
SELECT ProductName AS 商品名 , Price * 1.05 AS 税込価格 FROM Products ;
SELECT句の中で演算することができます。
引っかかったのがこれ。
SELECT Amount * 0.15 AS 給与の15% FROM Salary ;
エラーはこんなのでした。
SQLの実行結果を検証しましたが誤りがあります。 * 取得したカラム名: [給与の15] 必要としているカラム名: [給与の15%]
これは別名をダブルクォートで囲んで解決。
SELECT Amount * 0.15 AS "給与の15%" FROM Salary ;
次に引っかかったのはこれ。Heightの半分の値を取得するというSQL。最初にこう書きました。
SELECT Height / 2 AS 身長の半分 FROM Employees ;
エラーメッセージはこれ。
<<解答として不足している行>> [[80.0], [86.0], [79.0], [95.0], [82.0], [85.0], [88.0], [78.0], [81.0], [84.0], [74.0], [90.0]] <<解答として必要としていない行>> [[95], [90], [88], [86], [85], [84], [82], [81], [78], [74]]
小数点以下の桁数が合っていなくてエラーを起こしているようです。
正解はこちら。
SELECT Height * 0.5 AS 身長の半分 FROM Employees ;
なるほど。試しに乗数に小数点以下第2位まで入力して実行。
SELECT Height * 0.50 AS 身長の半分 FROM Employees ;
答は小数点以下第2位まで表示されました。
それじゃあというので除数を小数点以下第1位まで書いて実行。
SELECT Height / 2.0 AS 身長の半分 FROM Employees ;
これは駄目でした。2で割っても2.0で割っても結果は同じ。
試しにMySQLで実行したところ、かけ算の時はSQUATと同じ動作でしたが、割り算の時の動作は違っていて、2で割った時と2.0で割った時で小数点以下の桁数が変わっていました。この場合の動作は未定義なのでしょうか。小数点以下の桁数を気にする必要がある時は整形関数を使えということなのでしょう。