Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

SQL tidak mengenali alias kolom di mana klausa

Alias ​​dapat digunakan dalam daftar pemilihan kueri untuk memberi nama yang berbeda pada kolom. Anda dapat menggunakan alias dalam klausa GROUP BY, ORDER BY, atau HAVING untuk merujuk ke kolom.

SQL Standar tidak mengizinkan referensi ke alias kolom dalam klausa WHERE. Pembatasan ini diberlakukan karena ketika klausa WHERE dievaluasi, nilai kolom mungkin belum ditentukan.

Jadi, kueri berikut ini ilegal:

SQL> SELECT empno AS employee, deptno AS department, sal AS salary
  2  FROM emp
  3  WHERE employee = 7369;
WHERE employee = 7369
      *
ERROR at line 3:
ORA-00904: "EMPLOYEE": invalid identifier


SQL>

Alias ​​kolom diperbolehkan di:

  • GROUP BY
  • PESAN OLEH
  • PUNYA

Anda dapat merujuk ke alias kolom dalam klausa WHERE dalam kasus berikut:

  1. Sub-kueri
  2. Ekspresi Tabel Umum(CTE)

Misalnya,

SQL> SELECT * FROM
  2  (
  3  SELECT empno AS employee, deptno AS department, sal AS salary
  4  FROM emp
  5  )
  6  WHERE employee = 7369;

  EMPLOYEE DEPARTMENT     SALARY
---------- ---------- ----------
      7369         20        800

SQL> WITH DATA AS(
  2  SELECT empno AS employee, deptno AS department, sal AS salary
  3  FROM emp
  4  )
  5  SELECT * FROM DATA
  6  WHERE employee = 7369;

  EMPLOYEE DEPARTMENT     SALARY
---------- ---------- ----------
      7369         20        800

SQL>


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengekspor Tabel Oracle ke Lembar Kerja Excel

  2. 3 Cara Mengembalikan Zona Waktu dari Nilai Datetime di Oracle

  3. Cara menggunakan kunci asing di oracle

  4. COALESCE() Fungsi di Oracle

  5. Ambil daftar prosedur/fungsi pribadi dari badan paket