내부 조인을 통해 테이블 1을 테이블 2에 연결하는 SQL 쿼리가 있으며이 부분은 문의 선택 부분에 포함됩니다.
select
table1.field1,
table2.field1,
CASE (table2.field1)
WHEN -2 THEN ''
ELSE table2.field2
END as table2Field2,
table3.field4
from...
관련 값이있을 때 table2Field2를 반환 할 수 있기를 원합니다. 즉, table2에 표시된 개체가 null이 아니므로 table2.field1에 -2 값이 없습니다. 이 경우 table2Field2의 값은 의미없는 값이 아닌 공백이어야합니다.
그러나 이것은 빈 텍스트 대신 0을 반환합니다. 이 줄을 변경하면 :
WHEN -2 THEN ''
이에:
WHEN -2 THEN 'someText'
그런 다음 int를 문자열로 변환하려고 시도하고 있다고 불평합니다. table2field1은 int이지만 table2Field2는 우리가 실제로 여기서 반환하는 문자열입니다.
이 쿼리에서 문자열 필드를 (a) 문자열이 아닌 문자열이 아닌 문자열로 반환하고 (b) 내가 지정한 것임을 어떻게 명시합니까? 돌아 오세요?
모든 제안을 환영합니다. 도움을 주셔서 미리 감사드립니다. :)
A의 CASE
표현 가능한 리턴 값은 모두 동일한 데이터 형식이어야한다. 작성된대로 표현식은 하나의 문자열과 하나의 정수를 리턴하려고합니다.
당신은, 당신이 할 수있는 첫 번째 출력 빈 문자열하려는 경우 CAST
또는 CONVERT
문자 유형 값에 두 번째 출력 :
select
table1.field1,
table2.field1,
CASE (table2.field1)
WHEN -2 THEN ''
ELSE CAST(table2.field2 AS varchar(12)) --< 12 will cover any value of integer.
END as table2Field2,
table3.field4
from...
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다