2011-04-26 4 views
2

저장 프로 시저 proc_Audit_GetAppEmployedRelative이 있는데 그 목적은 이전 지원자의 친척 정보를 반환하는 것입니다. 다음 SELECT 문은 프로 시저에서입니다 :저장 프로 시저의 SELECT 문에서 "가짜"행을 만드는 방법

Select a.RowID, 
     a.ApplicantRowID, 
     a.RelativeName as SearsRelName, 
       Case When a.RelativeName <> 'N/A' then 'Yes' End as RelY, 
       Case When a.RelativeName = 'N/A' then 'Yes' End as RelN, 
     a.Relationship as SearsRelRelation, 
       a.RelativeJob as SearsRelJobType, 
     a.RelativeLoc as SearsRelJobLoc 
    From dbo.App_EmplRelative a(nolock) 
    Where a.ApplicantRowID = @ApplicantRowID 

내가 다른 필드가 테이블 App_EmplRelative 빈 경우에도 RelN = Yes을 반환 할 필요가있다. 기본적으로 지원자는 고용 된 상대 정보가 없습니다. 양식에 RelN = Yes을 얻기 위해 행을 가짜로 만들어야합니다. 제게 가짜 행을 만드는 방법을 알려주세요. 또한 proc에서 위의 select 문이 필요합니다.

+0

현재 검색어가 둘 이상의 행을 반환 할 수 있습니까? –

답변

1

결과 집합을 변수에 넣은 다음 결과 집합이 비어 있는지 테스트 할 수 있습니다. 그렇다면 실제 값을 선택하여 가짜 행을 만들 수 있습니다. 더 좋은 방법이 있지만, 이것이 바로 지금 내 머리 속으로 튀어 나와있는 것입니다.

SELECT TOP 1 null, null, null, 'Yes', null, null, null 
FROM dbo.App_EmplRelative a (nolock) 

내 취향 먼저 @ApplicationRowId에 대한 검사를하고 유효 만 조회하거나 코딩 측의 널 (null)을 처리하는 것입니다. 참고 : 2005 년에는 .NET 언어로 코딩하고이 유형의 조작을 처리 할 수 ​​있습니다.

+0

코드, XML 또는 데이터 샘플을 게시하는 경우 텍스트 편집기에서 해당 행을 강조 표시하고 편집기 툴바에서 "코드 샘플"버튼 ('{}) '을 클릭하여 멋지게 형식을 지정하고 구문을 강조 표시하십시오! –

1
Select a.RowID, 
     a.ApplicantRowID, 
     a.RelativeName as SearsRelName, 
     Case 
     When a.RelativeName <> 'N/A' then 'Yes' End as RelY, 
     Case 
     When a.RelativeName = 'N/A' 
      or a.ApplicantRowID is null then 'Yes' End as RelN, 
     a.Relationship as SearsRelRelation, 
     a.RelativeJob as SearsRelJobType, 
     a.RelativeLoc as SearsRelJobLoc 
From (SELECT 1 AS C) T 
     LEFT JOIN dbo.App_EmplRelative a(nolock) 
     ON a.ApplicantRowID = @ApplicantRowID 
+0

'CALALESCE (a.RelativeName, 'N ​​/ A') 'N/A' '예'END AS RelN'. –