61

SELECTステートメントの列のエイリアス名を定義するためにOracleで「AS」キーワードが必要ですか?

きがついた

SELECT column_name AS "alias"

と同じです

SELECT column_name "alias"

後者の方法で列エイリアスを定義すると、どのような結果になるのでしょうか。

4

7 に答える 7

50

select_list Oracle selectのドキュメントによると、ASはオプションです。

個人的なメモとして、私はASで読みやすいと思います

于 2011-12-09T20:21:34.743 に答える
30

(でテスト済みOracle 11g

についてAS

  • 結果列で使用する場合、ASはオプションです。
  • テーブル名に使用する場合はAS、追加しないでください。追加しないとエラーになります。

についてdouble quote

  • これはオプションであり、結果の列とテーブル名の両方に有効です。

例えば

-- 'AS' is optional for result column
select (1+1) as result from dual;
select (1+1) result from dual;


-- 'AS' shouldn't be used for table name
select 'hi' from dual d;


-- Adding double quotes for alias name is optional, but valid for both result column & table name,
select (1+1) as "result" from dual;
select (1+1) "result" from dual;

select 'hi' from dual "d";
于 2016-12-05T07:28:29.353 に答える
9

二重引用符のないASは適切です。

SELECT employee_id,department_id AS department
FROM employees
order by department

- わかった -

SELECT employee_id,department_id AS "department"
FROM employees
order by department

--Oracleのエラー--

ORDER BY句を使用する場合は、二重引用符なしでASを使用することをお勧めします

于 2014-01-08T16:13:38.160 に答える
7

どちらも正しいです。Oracleでは、両方の使用が許可されています。

于 2011-12-09T20:26:37.687 に答える
6

私の結論は次のとおりです(12cでテスト済み):

  • ASは、「」の有無にかかわらず、常にオプションです。ASは違いを生じません(列エイリアスのみ、AS先行テーブルエイリアスは使用できません)
  • ただし、「」を使用するとエイリアスの小文字が可能になるため、「」を使用する場合と使用しない場合で違いが生じます。

したがって :

SELECT {T / t} FROM (SELECT 1 AS T FROM DUAL); -- Correct
SELECT "tEST" FROM (SELECT 1 AS "tEST" FROM DUAL); -- Correct
SELECT {"TEST" / tEST} FROM (SELECT 1 AS "tEST" FROM DUAL ); -- Incorrect

SELECT test_value AS "doggy" FROM test ORDER BY "doggy"; --Correct
SELECT test_value AS "doggy" FROM test WHERE "doggy" IS NOT NULL; --You can not do this, column alias not supported in WHERE & HAVING
SELECT * FROM test "doggy" WHERE "doggy".test_value IS NOT NULL; -- Do not use AS preceding table alias

したがって、USING ASAND""が問題を引き起こす理由はASではありません

注:エイリアスにスペースが含まれている場合、またはエイリアスに小文字が含まれていて、結果セットに小文字として表示される必要がある場合は、""二重引用符が必要です。他のすべてのシナリオでは、そのオプションであり、無視できます。

于 2018-02-02T16:13:54.093 に答える
5

エイリアス名に次のようなスペースがある場合は、引用符が必要です

SELECT employee_id,department_id AS "Department ID"
FROM employees
order by department
于 2015-01-05T15:35:51.120 に答える
1

両方の間に違いはありません。一部の依存ライブラリがこの小さなキーワードに依存しているASため、エイリアスについてより明確に言及する方法です。例:JDBC4.0。用途によっては、異なる動作が見られます。

これを参照してください。このような問題を回避するために、常に完全な形式のセマンティクスを使用することをお勧めします。

于 2019-02-15T05:52:36.897 に答える