-
MSSQL 데이터 병합Data Base/MSSQL 2008. 11. 21. 15:02
Select 시 컬럼명을 다음과 같이 조회 했을 경우
항공법규20
,dbo.ufn_sysf_com_nm('과목',d.subject_cd) as subject_nm --과목명
,(case when f.subject_absent_yn = 'y' then (case when d.exemption_subject_yn = 'y' then '면제' else '결시' end) else marking_points end)
결과는 ----
항공법규 20
공중항법 70
항공기상 70
비행이론 70
교통통신 80
-----------
라고 나온다.
데이터 조합을 하기 위해 다음과 같이 썼다.
,dbo.ufn_sysf_com_nm('과목',d.subject_cd) as subject_nm +(case when f.subject_absent_yn = 'y' then (case when d.exemption_subject_yn = 'y' then '면제' else '결시' end) else marking_points end)
라고 조회 했을 경우...
'+' 근처의 구문이 잘못되었습니다. 라는 에러.
alias 가 중간에 있어서 ....수정했다.
,dbo.ufn_sysf_com_nm('과목',d.subject_cd) + (case when f.subject_absent_yn = 'y' then (case when d.exemption_subject_yn = 'y' then '면제' else '결시' end) else marking_points end)
라고 수정후 조회했을 경우....
varchar 값 '항공법규'을(를) 데이터 형식 int(으)로 변환하지 못했습니다.
중간에 있는 + 항목을 해줄려는데 varchar + int 형식이기 때문에
문자열로 더하는 것도 아니고 숫자열로 더하지도 않는게 되었다.
,dbo.ufn_sysf_com_nm('과목',d.subject_cd) +convert(varchar,(case when f.subject_absent_yn = 'y' then (case when d.exemption_subject_yn = 'y' then '면제' else '결시' end) else marking_points end))
라고 쓰니 문제 해결
공중항법70
항공기상70
비행이론70
교통통신80
,dbo.ufn_sysf_com_nm('과목',d.subject_cd) +'('+convert(varchar,(case when f.subject_absent_yn = 'y' then (case when d.exemption_subject_yn = 'y' then '면제' else '결시' end) else marking_points end))+'점)' as subject_point
항공법규(20점)
공중항법(70점)
항공기상(70점)
비행이론(70점)
교통통신(80점)
로 완성했음~^^