2014-07-11 3 views
3

쿼리가 실행되는 동안 select 문에 부울 논리를 구현하려면 어떻게해야합니까? .부울 논리 선택문

SELECT t.[Key] 
     ,t.[Parent_Key] 
     ,t.[Parent_Code] 
     ,t.[Code] 
     ,t.[Desc] 
     ,t.[Point] 
     ,[isChild] -- If Point > 2, then true, if Point == 1 Then false 
     ,t.[By] 
     ,t.[On] 
FROM [db].[stats] t WHERE t.[Parent_Key]= @tmpParameter 

내가 [isChild] t에 따라 부울 값을 결정하기 위해 일부 로직을 원하는 [포인트]

+0

[CASE] (http://msdn.microsoft.com/en-us/library/ms181765 .aspx) – Habib

답변

5
SELECT t.[Key] 
     ,t.[Parent_Key] 
     ,t.[Parent_Code] 
     ,t.[Code] 
     ,t.[Desc] 
     ,t.[Point] 
     ,CASE WHEN t.[Point] > 2 THEN 1 ELSE 
      CASE WHEN t.[Point] = 1 THEN 0 ELSE NULL END 
     END AS [isChild] 
     ,t.[By] 
     ,t.[On] 
FROM [db].[stats] t WHERE t.[Parent_Key]= @tmpParameter 

것은주의 그 때 t. [포인트] < 한 후 [isChild] null가됩니다

0

은 case 문 사용 : 당신은 CASE 문을 사용할 수 있습니다

SELECT t.[Key] 
     ,t.[Parent_Key] 
     ,t.[Parent_Code] 
     ,t.[Code] 
     ,t.[Desc] 
     ,t.[Point] 
     ,CASE t.[Point] WHEN 1 THEN FALSE WHEN 2 THEN TRUE END as [isChild] 
     ,t.[By] 
     ,t.[On] 
FROM [db].[stats] t WHERE t.[Parent_Key]= @tmpParameter 
0

SELECT t.[Key] 
    ,t.[Parent_Key] 
    ,t.[Parent_Code] 
    ,t.[Code] 
    ,t.[Desc] 
    ,t.[Point] 
    ,CASE 
    WHEN t.[Point] THEN true 
    else false 
    END as isChild 
    ,t.[By] 
    ,t.[On] 
FROM [db].[stats] t WHERE t.[Parent_Key]= @tmpParameter 
1

사례는 귀하의 친구입니다 ...

,210
SELECT Key, Parent_Key, Parent_Code, Code, Desc, point, 
    case when point > 2 then 1 
      when point = 1 then 0 end isChild, 
    [By], [On] 
FROM db.stats 
WHERE Parent_Key= @tmpParameter