2010-06-28 14 views

Odpowiedz

24

Zastosowanie CAST/CONVERT jawnie określić typ danych:

SELECT CAST (CASE 
       WHEN LOWER(h.outofserv) = 'y' THEN 1 
       ELSE 0 
      END AS BIT) AS OOS 
FROM HISTORY h 
+1

Idealny! Dzięki. –

4

należy po prostu użyć CAST(1 as bit) i CAST(0 as bit) zamiast 1 i 0:

SELECT (CASE WHEN HISTORY.OUTOFSERV = 'Y' OR HISTORY.OUTOFSERV = 'y' 
      THEN CAST(1 AS bit) 
      ELSE CAST(0 AS bit) 
     END) AS OOS 
FROM HISTORY 
+0

To było najlepsze rozwiązanie dla mojego przypadku użycia, dzięki. – Yass

+0

@ Yass: Nie ma za co! – Oleg

2

Oto sposób, aby uzyskać pożądany wynik typ danych BIT i przy użyciu nieco bardziej przejrzystego kodu, używając:

  • górna()
  • obsada()

    SELECT obsada (CASE
    Gdy prowadnica górna (History.OutofServ) = 'Y', a następnie 1
    ELSE 0 końcowy jako BIT) jako OOS z historii

Mam nadzieję, że to pomaga.

+0

+1 dla bitu "górnego" – Earlz

Powiązane problemy