2013-10-25 9 views
6

ケース・タイム・トゥ・テン・ステートメントに基づいて真または偽を返そうとしていますが、結果パネルに表示されるのは列名 "IsGeneric "ケースを使用してtsqlからtrueまたはfalseを返す方法

どこが間違っていますか?

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; 

答えて

12

あなたはそれの代わりに、文字列になり識別子、周りにアポストロフィを使用しています。

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 
関連する問題