2013-10-21 3 views
1

다른 필드 중 두 개의 int, 즉 [CaseNo]와 다른 [QueryNo]가있는 [Case] ​​테이블이 있습니다. 이들 중 하나만 언제든지 존재하고 다른 하나는 Null을 반환합니다.두 개의 Ints 중 하나를 선택하고 조건부 서식을 적용하십시오.

존재하는 경우 [CaseNo]를 반환하는 SELECT 문이 필요하고 그렇지 않은 경우 [QueryNo]를 나타내는 [Q]로 진행되는 [QueryNo]를 반환해야합니다.

나는 다음과 같은 성명 시도 -

SELECT CONVERT(VarChar(50), (ISNULL(CaseNo, 'Q' + QueryNo))) 
FROM [Case] 

을하지만 내 변환을 좋아하지 않는다.

내 목표를 달성하기위한 올바른 진술을 누군가 도울 수 있습니까?

답변

1

CASE 문 사용 :

Select Case when caseNo is null then 'Q'+ Convert(varchar(10),queryNo) 
      else Convert(varchar(10),caseNo) end as yourNo 
from [Case] 

을 또는 경우/유착을 ISNULL 사용하는 것과 같이, 당신은 할 수 :

Select isnull(Convert(varchar(10), caseNo),'Q' + Convert(varchar(10), queryNo)) yourNo 
from [Case] 
+0

하지만 값의 전면에서 'Q'를 배치해야 그것이 QueryNo라면 반환 값은 문자열이 될 것입니다. 예를 들어 CaseNo가 NULL이고 QueryNo가 123이라면 Select가 'Q123'을 반환하도록합니다. – PJW

+0

나는 varchar 값 'Q'를 데이터 유형 int로 변환 할 때 '변환에 실패했습니다.'라는 두 번째 제안을 이미 시도했습니다. ' 그래서 VarChar에 변환을 통합하려고했습니다. – PJW

+0

내 대답을 편집하고 '사례'가 누락되었습니다. 모두 작동해야합니다. – Kaf

관련 문제