Giriş
Çoğunlukla sütun verisi sorgulanıp dönüştürülür. CASE...END şeklindedir. Araya da WHEN THEN/ELSE ifadeleri gelir.
Örnek - Sadece WHEN
Şöyle yaparız
Elimizde şöyle bir kod olsun
Çoğunlukla sütun verisi sorgulanıp dönüştürülür. CASE...END şeklindedir. Araya da WHEN THEN/ELSE ifadeleri gelir.
Örnek - Sadece WHEN
Şöyle yaparız
SELECT
status,
CASE
WHEN STATUS IN('a1','a2','a3')
THEN 'Active'
WHEN STATUS = 'i'
THEN 'Inactive'
WHEN STATUS = 't'
THEN 'Terminated'
END AS STATUSTEXT
FROM
STATUS
Örnek - WHEN + ELSEElimizde şöyle bir kod olsun
CREATE AND COMPILE JAVA SOURCE NAMED SORTSTRING AS
public class SortString {
public static String sort( final String value )
{
final char[] chars = value.toCharArray();
java.util.Arrays.sort( chars );
return new String( chars );
}
};
/
Sütun kullanmadan bu kodu çağırarak şöyle yaparız.SELECT CASE
WHEN SORTSTRING( 'ads' ) = SORTSTRING( 'das' )
THEN 'Equal'
ELSE 'Not Equal'
END
FROM DUAL;
Örnek - WHEN + ELSEŞöyle yaparız. Burad veri XML'e çevriliyor.
CREATE TABLE customer
(
id NUMBER,
first_name VARCHAR2(100),
last_name VARCHAR2(100),
birth_date DATE,
gender VARCHAR2(1)
);
CREATE TABLE customer_xml
(
created_date DATE,
row_num NUMBER,
xml_data VARCHAR2(4000)
);
INSERT INTO customer_xml (created_date, row_num, xml_data)
SELECT c.created_date, c.row_num,
CASE
WHEN c.row_num = 1 THEN
'<?xml version="1.0" encoding="UTF-8"?><root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">'
ELSE
''
END ||
'<id>' || TO_CHAR(id) || '</id>' ||
'<first_name>' || first_name || '</first_name>' ||
'<last_name>' || last_name || '</last_name>' ||
'<birth_date>' || TO_CHAR(birth_date, 'YYYY-MM-DD') || '</birth_date>' ||
'<gender>' || gender || '</gender>' ||
CASE
WHEN c.row_num = rc.row_count THEN
'</root>'
ELSE
''
END AS xml_data
FROM customer;
Hiç yorum yok:
Yorum Gönder