2013-10-25 9 views
6

Ich versuche True oder False basierend auf einer CASE WHEN THEN Tsql-Anweisung zurückzugeben, aber das einzige, was jemals im Ergebnisbereich angezeigt wird, ist der Spaltenname "IsGeneric ".Wie wahr oder falsch von tsql mit case zurückgegeben wird, wenn

Wohin gehe ich falsch?

alter proc Storefront.proc_IsProjectGeneric 

@ProjectID INT 
AS 
SET NOCOUNT ON; 

SELECT 'IsGeneric'=CASE WHEN p.[GenericCatalogID] > 0 THEN CAST(1 AS BIT) ELSE CAST(0 AS BIT) END 
       FROM Storefront.Project p WITH(NOLOCK) 
       WHERE p.ID = @ProjectID; 

SET NOCOUNT OFF; 

Antwort

12

Sie verwenden Apostrophe um die Kennung, die stattdessen es ein String macht.

SELECT IsGeneric = CASE WHEN p.[GenericCatalogID] > 0 THEN CAST(1 AS BIT) ELSE CAST(0 AS BIT) END 
      FROM Storefront.Project p WITH(NOLOCK) 
      WHERE p.ID = @ProjectID; 
2
SELECT CASE WHEN p.[GenericCatalogID] > 0 
      THEN CAST(1 AS BIT) 
      ELSE CAST(0 AS BIT) 
     END as IsGeneric 
Verwandte Themen