아래와 같이 테이블에 데이터가 들어있는데요.
USER_CODE | RESULT |
194,195,196,197,198,199,200,201,238 | 3 |
202,203,204,205,206,207,209,210,211,212,213,214,215,216,217,218 | 2 |
USER_CODE 가 194 인 사람이 접속을 하면 결과값이 3을 뽑아오고 싶습니다.
Where 절을 어떻게 해야 할까요?
전 간단히 Where User_code in (194) 라고 하면 될지 알고... 시작을 했는데...
안되더라구요.
오류가 varcharr값 ..... 을 데이터 형식 int 로 변환하지 못했습니다. 라고만 나오네요..
Comment 4
-
Terry
2015.10.01 14:59
-
DOOLLY
2015.10.01 16:15
컴마로 여러 사람들의 코드를 넣어놓은거여서 varchar로 해야 하는데요.. , 가 분리자입니다.
-
Terry
2015.10.01 17:08
Declare @ls_arg Char(3)
Select @ls_arg = '194'
with tblA (USER_CODE,RESULT) As
(
Select '194,195,196,197,198,199,200,201,238',3 Union All
Select '199,195,196,197,194,198,199,200,201,238',3 Union All
Select '202,203,204,205,206,207,209,210,211,212,213,214,215,216,217,218',2
)
Select a.RESULT
From tblA a
Where SubString(a.USER_CODE,CHARINDEX('Z',Replace(a.USER_CODE,@ls_arg,'ZZZ')),3) = @ls_arg
-
루디먼트
2015.10.01 17:58
where USER_CODE like '%'+ @code +'%'
컬럼의 데이터타입이 숫자형(int,decimal 외) 이 아닌
varchar 로 설정되어져 있는듯하네요..
해당컬럼을 Where 절에서 형변환해서
처리하시면 됩니다.
Where Convert(Integer,User_code) in (194)
참고만 하세요~