列の値に対して演算を行う

SELECT
  ProductName AS 商品名
, Price * 1.05 AS 税込価格
FROM
  Products
;

SELECT句の中で演算することができます。

引っかかったのがこれ。

SELECT
  Amount * 0.15 AS 給与の15FROM
  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で割った時で小数点以下の桁数が変わっていました。この場合の動作は未定義なのでしょうか。小数点以下の桁数を気にする必要がある時は整形関数を使えということなのでしょう。