Monday, May 30, 2011

SQL Case Statement / If Else Statement

Belakangan ini baru dapet tes SQL sederhana tapi sayangnya saya sama sekali tidak mudeng / blank dan tidak mahir dalam SQL. Hal dikarenakan terlalu jarang menggunakan SQL dalam bidang pekerjaan. Hanya query-query sangat sederhana saja, alhasil query sederhana seperti IF-ELSE statement standard dalam SQL saja saya lupa :(

Berikut catatan pribadi saya yang diambil dari sumber-sumber di internet:

Saya ingin mengambil result/show column yang hasilnya tergantung pada isi table yang bersangkutan.
Misal:
  - Ingin menampilkan kolom "TipeHarga" dengan nilai yang diperoleh dari "Harga" yang terdapat pada table.
- Jika "Harga" > 1000 maka isi kolom "TipeHarga" = Mahal , jika tidak, maka "TipeHarga" = Murah.


Lewat SQL, hal ini bisa diperoleh dengan kata kunci case , when-then-else.

CASE [expression]
    WHEN [value | Boolean expression] THEN [return value]
    [ELSE [return value]]
END


Contoh:

SELECT CASE WHEN Harga >= 1000
            THEN 'Mahal'
            ELSE 'Murah'          END as TipeHarga
  From X

Maka yang tampil adalah kolom "TipeHarga" untuk masing-masing "Harga" < 1000 maka isinya adalah 'Murah', sebaliknya > 1000 isinya 'Mahal'

Dapat juga seperti ini:
SELECT CASE Harga
                WHEN 1 Then '1 Rupiah'
                WHEN 1000 Then '1000 Rupiah'
                WHEN 5000 Then '5000 Rupiah'
                ELSE 'Tidak Diketahui'
END  as 'Status' 
From X

Contoh query lengkapnya :
select P.Name
     , P.Type
     , PS.SalePrice as Price
     , case when PS.SalePrice > 200
            then 'Expensive'
            else 'Value' end AS PriceType
  from Product P
inner
  join ProductSale PS
    on P.ProductID = PS.ProductID
 where P.Category = @Category
   and P.Vendor = @Vendor
order by P.Name desc


Maaf kalo ada salah, cuman mao sharing yang saya tau :p
Saran dan Kritik sangat diharapkan :)

No comments:

Post a Comment