SQL4 択難易度 標準

name と salary の 2 列を出したいのに 1 列しか出ない。正しく直したものは?

SELECT name salary FROM emp ORDER BY name;

正答

  1. SELECT name AS salary FROM emp ORDER BY name;
  2. SELECT name, salary FROM emp ORDER BY name;
  3. SELECT name. salary FROM emp ORDER BY name;
  4. SELECT (name salary) FROM emp ORDER BY name;

解説

SELECT name salary のようにカンマが抜けると、SQLite は salary を name の別名(AS の省略)として解釈する。そのためエラーにはならず、salary という見出しで名前だけが 1 列返る。列を並べるときは必ずカンマで区切る。AS salary を明示しても意味は同じで直らない。ピリオドにすると「表 name の列 salary」の意味になり、そのような表はないのでエラーになる。括弧で囲んでも構文エラーになる。

参考: www.sqlite.org

typocommaalias

この問題を含む SQL のテストを制限時間つきで解く

SQLクイズへ