WITH kullanarak çoklu işlemler


16

WITHDeyimi kullanarak birden çok işlem yürütmenin bir yolu var mı ?

Gibi bir şey

WITH T AS
(
  SELECT * FROM Tbl
)
BEGIN
  OPEN P_OUTCURSOR FOR
    SELECT * FROM T;

  SELECT COUNT(*) INTO P_OUTCOUNT FROM T;
END;

Bazı verileri ve sayısını seçmek istiyorum ...

Yanıtlar:


17

CTE'den sonra yalnızca bir ifadeniz olabilir. Bununla birlikte, bir öncekine göre sonraki CTE'leri tanımlayabilirsiniz:

WITH t1 AS (
   SELECT a, b, c
   FROM table1
)
, t2 AS (
   SELECT b
   FROM t1
   WHERE a = 5
)
SELECT *
FROM t2;

Satırları saymaya ve aynı sonuç kümesinden bir ref imleci doldurmaya çalıştığınız göz önüne alındığında, aşağıdakilerden birini yapmak daha uygun olabilir:

  • bir görünüm oluştur
  • geçici tabloda geçici sonuçları sahne

Son olarak, sorgu yeterince basitse, sayım için bir kez ve imleç için tekrar yazın. Basitlik ve okunabilirlik bu durumda DRY prensibini gölgede bırakır .


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.