Rumah > pangkalan data > tutorial mysql > Bolehkah saya Menggunakan Alias ​​Lajur dalam Klausa WHERE?

Bolehkah saya Menggunakan Alias ​​Lajur dalam Klausa WHERE?

Mary-Kate Olsen
Lepaskan: 2025-01-21 17:42:10
asal
141 orang telah melayarinya

Can I Use Column Aliases in WHERE Clauses?

Rujuk alias lajur dalam klausa WHERE

Merujuk alias lajur dalam klausa WHERE kadangkala boleh menyebabkan ralat semasa memproses pertanyaan pangkalan data. Ini kerana alias biasanya digunakan selepas klausa WHERE dinilai. Pertimbangkan pertanyaan berikut:

<code class="language-sql">SELECT logcount, logUserID, maxlogtm
   , DATEDIFF(day, maxlogtm, GETDATE()) AS daysdiff
FROM statslogsummary
WHERE daysdiff > 120</code>
Salin selepas log masuk

Dalam pertanyaan ini, ralat berlaku kerana "daysdiff" ialah alias lajur yang dibuat dalam pernyataan SELECT. Untuk merujuk alias dalam klausa WHERE, anda boleh memaksa SQL untuk menilai pernyataan SELECT sebelum klausa WHERE. Ini boleh dicapai dengan menggunakan kurungan atau ungkapan jadual biasa (CTE).

Kurungan/Subkueri:

<code class="language-sql">SELECT
   *
FROM
(
   SELECT
      logcount, logUserID, maxlogtm,
      DATEDIFF(day, maxlogtm, GETDATE()) AS daysdiff
   FROM statslogsummary   
) as innerTable
WHERE daysdiff > 120</code>
Salin selepas log masuk

CTE:

<code class="language-sql">WITH CTE AS (
   SELECT
      logcount, logUserID, maxlogtm,
      DATEDIFF(day, maxlogtm, GETDATE()) AS daysdiff
   FROM statslogsummary
)
SELECT
   *
FROM CTE
WHERE daysdiff > 120</code>
Salin selepas log masuk

Dengan menggunakan kurungan atau CTE, pernyataan SELECT dinilai sebelum klausa WHERE, membolehkan anda merujuk alias lajur dalam klausa WHERE tanpa ralat.

Atas ialah kandungan terperinci Bolehkah saya Menggunakan Alias ​​Lajur dalam Klausa WHERE?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan