MS_SQL 관련 질문사항이있습니다. 0 3 816

by 박태준 [2016.04.12 19:18:12]


 

JOB_WORK 라는 테이블이 있습니다.

테이블 중

JOB_SKILL 이라는 컬럼이 있는데 data type은 char(4)입니다.

이 컬럼의 데이터에는 ('0001','0002','0003','0004','0005') 라는 데이터로만 이루어져 있습니다.

 그런데 .데이터 조회시..

 

 select * from JOB_WORK where JOB_SKILL= 1;

 

이런식으로 쿼리를 조회한다면

 

job_skill이라는 컬럼의 '0001'이라는 데이터가 조회가 됩니다.

 

ms_sql은 자동형변화되서 매핑이 되는건가요?

아니면 제가 잘못알고 있어서 오라클에서도 자동매핑이 되고 있엇던 건가요..?

by 타락천사 [2016.04.13 20:29:12]

create table JOB_WORK ( a1 int, JOB_SKILL char(4) ) ;

SET NOCOUNT ON
GO

insert into job_work VALUES ( 1, '0001' )
GO 10000
insert into job_work VALUES( 2, '0002' )
GO 10000
insert into job_work VALUES ( 3, '0003' )
GO 10000
insert into job_work VALUES ( 4, '0004' )
GO 1


SELECT A1 , COUNT(*)
FROM   JOB_WORK
GROUP BY A1 


SELECT *
FROM  JOB_WORK
WHERE JOB_SKILL=1

하구 실행 계획 확인 해보면.

CONVERT _IMPLICIT 라고 형병환이 실행계획에서 확인 가능합니ㅏ.

 


by 박태준 [2016.04.15 18:06:06]

정말 감사합니다~^^


by 마농 [2016.04.14 08:39:54]

MSSQL 이나 Oracle 이나 동일합니다.
문자와 숫자 비교시 문자가 숫자로 변환됩니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입