如何使用case时从tsql返回true或false

Fil*_* DO 7 t-sql case-when

我试图基于CASE WHEN THEN THEN语句返回true或false,但结果面板中唯一显示的是列名"IsGeneric".

我哪里错了?

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;
Run Code Online (Sandbox Code Playgroud)

Guf*_*ffa 16

您正在标识符周围使用撇号,这使其成为字符串.

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;
Run Code Online (Sandbox Code Playgroud)


jue*_*n d 6

SELECT CASE WHEN p.[GenericCatalogID] > 0 
            THEN CAST(1 AS BIT) 
            ELSE CAST(0 AS BIT) 
       END as IsGeneric
Run Code Online (Sandbox Code Playgroud)