안녕하세요 질문하나 드립니다.
작업소요일이라는 열에 1일, 2일,3일 이런식의 varchar 테이터로 저장이 되어있는데요
합계용일 = convert(numeric(18,1),isnull(rtrim(ltrim(replace(replace(isnull(a.작업소요일,0),' ',''),'일',''))),0))
로 해당 작업소요일을 합산을 위해 숫자형으로 변환하고 싶습니다.
근데 문제가 발생되는점이...
데이터를 입력할때나 수정할때 작업소요일에 어떤 값을 입력한후에 다시 지우고 저장하면
널값이 아닌 빈데이터가 들어가서 ( ' ' <--같은공백도 없습니다 ) varchar 형식에서 numeric으로 변환시 오류가 발생한다는 메세지가 뜹니다.
이부분을 어떻게 처리해야할까요???? 임의로 convert 전에 +'10' 을 해봐도 같은 오류가 발생하더라고요.. 도움을주세요 ㅠㅠ
Comment 2
-
알지오_295144
2013.10.08 18:54
-
항해자™
2013.10.08 22:27
nullif(col,'')
ifnull(col,'')
둘중 어떤건지 기억이 안나네요ㅎㅎ
합계용일 = CASE WHEN isnull(a.작업소요일,'') = '' THEN '' ELSE convert(numeric(18,1),isnull(rtrim(ltrim(replace(replace(isnull(a.작업소요일,0),' ',''),'일',''))),0)) END
이렇게 하면 어떨까요 ?