2016-05-11 16 views
-2

Ich habe die folgende Case Statement und ich füge dies in eine neue Tabelle ein. Die Spalte unter der neuen Tabelle ist Varchar, aber ich brauche es als INT. Ich habe den Datentyp geändert, indem ich die Alter-Anweisung verwende, aber ich lösche und erstelle die gleiche Tabelle. Gibt es eine Möglichkeit, die neue Tabelle den Datentyp von INT anstelle von Varchar für die folgende Syntax zu erstellen?SQL Server - 2008 Spalte Datentyp

CASE WHEN F.END_DATE IS NOT NULL OR F.REASON IS NOT NULL THEN '0' ELSE '1' END Enrolled' 
+2

, wenn Sie einen 'INT' statt' VARCHAR' wollen, dann ** warum ** Verwenden Sie 'THEN '0' ELSE '1' END' anstelle von' THEN 0 ELSE 1 END'? – Lamak

Antwort

1

Lassen Sie sich um 0 der Apostrophe befreien und 1:

CASE WHEN F.END_DATE IS NOT NULL OR F.REASON IS NOT NULL THEN 0 ELSE 1 END Enrolled' 
0

Versuchen Sie folgend:

CASE WHEN coalesce(F.END_DATE,F.REASON ,0)=0 THEN 0 ELSE 1 END Enrolled