C# - Érték konvertáló select lekérdezés

forráskód letöltése
Ha egy lekérdezés eredményébe olyan adatok is kerülnek, melyek helyett jó lenne mást viszontlátni, akkor lehetőségünk van arra, hogy a Select utasításban megadjuk, hogy mely érték helyet mi jelenjen meg. Ha például van egy olyan érték az eredményben, hogy „SO”, akkor ezt konvertálhatjuk „Software Online”-ra. Az így lefuttatott Select eredményében nem is lehet majd észrevenni, hogy konverzió történt, olyan mintha a konvertált értékek lennének az adattáblában.
A mellékelt példa futtatása előtt a Form1.cs forráskód 113. sorában lévő connStr változót módosítsa annak megfelelően, hogy elérhető legyen az MS SQL Northwind példaadatbázisa.
A megoldása a Selecten belüli Case utasításban rejlik. Ha ezt közvetlenül a Select után a megjelenítendő oszlopoknál használjuk, akkor kaphatunk egy olyan új oszlopot, melyben a tábla egy oszlopának értékeit tetszőlegesre cserélhetjük.
A mellékelt példában a Northwind adatbázis Orders táblájára futtatunk egy egyszerű Select-et, mely az OrderID, OrderDate, CustomerID oszlopokat listázza, valamint készít egy új oszlopot is, a CustomerID oszlopban lévő adatok alapján. Ez esetben két értéket konvertálunk két új értékre. Az egyik a VINET, a másik TOMSP érték lesz. Ezek helyett egy új érték jelenik meg az eredmény halmazban.
Mivel a Case utasítás Else ágában megadjuk a CustomerID oszlopot, így az összes többi esetben a CustomerID eredeti tartalma jelenik meg a lekérdezés eredményében.
SELECT OrderID, OrderDate, CustomerID,
  CASE CustomerID
      WHEN 'VINET' THEN 'V Internet'
      WHEN 'TOMSP' THEN 'Tomato Stored Procedure'
      ELSE CustomerID
  END AS CustomerName 
FROM Orders