Kod: Tümünü seç
SELECT
o.ID, o.Description,
CASE o.Status
WHEN 1 THEN 'confirmed'
WHEN 2 THEN 'in production'
WHEN 3 THEN 'ready'
WHEN 4 THEN 'shipped'
ELSE 'unknown status ''' || o.Status || ''''
END
FROM Orders o
Kod: Tümünü seç
SELECT
o.ID, o.Description,
CASE
WHEN (o.Status IS NULL) THEN 'new'
WHEN (o.Status = 1) THEN 'confirmed'
WHEN (o.Status = 3) THEN 'in production'
WHEN (o.Status = 4) THEN 'ready'
WHEN (o.Status = 5) THEN 'shipped'
ELSE 'unknown status ''' || o.Status || ''''
END
FROM Orders o
Universal triggers : Tek bir trigger birden fazla olay için tetiklenebilir..
Kod: Tümünü seç
CREATE TRIGGER my_trigger FOR my_table BEFORE INSERT OR UPDATE
AS BEGIN
IF (NEW.DOC_ID IS NULL) THEN
EXCEPTION my_exception;
END
-----------------------------------------------------------------------------------------------------------------------------
Triggers improvement.: Runtime da trigger tipinin ne olduğu belirlenebilir..(INSERTING/UPDATING/DELETING )
Kod: Tümünü seç
if (INSERTING) then
new.OPER_TYPE = 'I';
else
new.OPER_TYPE = 'U';
COALESCE internal function : İlgili kolon değerini birden fazla ifade için hesaplayabiliriz. NULL değer döndürmeyen ilk ifade ilgili kolonumuzun değerini verir.
COALESCE (value {, value} ... )
COALESCE (V1, V2) ifadesi şuna eşittir :
Kod: Tümünü seç
CASE WHEN V1 IS NOT NULL THEN
V1
ELSE V2
END
COALESCE (V1, V2, ..., Vn), n >= 3 için bu ifade şuna eşittir :
Kod: Tümünü seç
CASE WHEN V1 IS NOT NULL THEN
V1
ELSE
COALESCE (V2, ..., Vn) END
Kod: Tümünü seç
SELECT
PROJ_NAME AS Projectname,
COALESCE(e.FULL_NAME, '[> not assigned <]') AS Employeename
FROM
PROJECT p LEFT JOIN EMPLOYEE e ON (e.EMP_NO = p.TEAM_LEADER)
NULLIF internal function :
Kod: Tümünü seç
Syntax:
NULLIF (value, value)
Kod: Tümünü seç
NULLIF (V1, V2) ifadesi şuna eşittir :
CASE WHEN V1 = V2 THEN NULL
ELSE V1 END
Kod: Tümünü seç
UPDATE URUN
SET STOKNO = NULLIF(STOKNO, 0)
Saygılar .... Sevgiler....
