2013-09-27 4 views
-1

SQL Server 2008을 사용 중입니다. 여기 누군가가 도움을 준 아래 코드를 사용하면 varchar (50)에서 numeric2로 column2를 변환하거나 변환 할 수 있습니까? 10,0) 같은 select 문에서? 탭 구분 된 텍스트 파일을 가져 오는 저장 프로 시저의 일부입니다. select에서이 작업을 수행 할 수 없으면 중간 임시 테이블을 만들 것입니다. 어떤 도움을 주셔서 감사합니다.SELECT 문에서 변환 또는 변환을 수행하는 동안 CHARINDEX를 사용하여 추출

SELECT column1 
, RIGHT(column2,CHARINDEX('-',REVERSE(column2))-1) as extracted 
, column3 
FROM myTable 

누군가 샘플 데이터를 요청했습니다. column2는 Bluevird Clinic-333을 varchar로 가질 수 있습니다. 쿼리의 결과는 숫자로 333이됩니다. 문제는 이미 답변되었지만 누군가 도움이 될 경우를 대비해 추가했습니다.

+0

검색어 출력의'column2' 또는 2nd column을 의미합니까? –

+0

결과가 숫자로 다른 테이블에 삽입됩니다. 어떤 방법 으로든 작동 할 수 있지만 쿼리 결과는 분명히 나타납니다. – user2525015

+0

해당 열에 대해 일부 샘플 값을 추가 할 수 있습니까? –

답변

1

어쩌면?

SELECT column1 
, CAST(RIGHT(column2,CHARINDEX('-',REVERSE(column2))-1) AS numeric(10,0)) as extracted 
, column3 
FROM myTable 
+0

그게 작동합니다. 내가 생각했던 것보다 더 간단했다. 감사. – user2525015