我试图基于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)
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)