name と salary の 2 列を出したいのに 1 列しか出ない。正しく直したものは?
SELECT name salary FROM emp ORDER BY name;正答
- SELECT name AS salary FROM emp ORDER BY name;
- SELECT name, salary FROM emp ORDER BY name;
- SELECT name. salary FROM emp ORDER BY name;
- SELECT (name salary) FROM emp ORDER BY name;
解説
SELECT name salary のようにカンマが抜けると、SQLite は salary を name の別名(AS の省略)として解釈する。そのためエラーにはならず、salary という見出しで名前だけが 1 列返る。列を並べるときは必ずカンマで区切る。AS salary を明示しても意味は同じで直らない。ピリオドにすると「表 name の列 salary」の意味になり、そのような表はないのでエラーになる。括弧で囲んでも構文エラーになる。
参考: www.sqlite.org
この問題を含む SQL のテストを制限時間つきで解く
SQLクイズへ