2011-10-17 3 views
0

나는 Excel 스프레드 시트에서 데이터를 긁어 데이터베이스에 저장하는 데 사용되는 응용 프로그램을 작성 중입니다. 데이터가 Excel에서 표준화되지 않아 긁힌 자국이 매우 유연해야합니다. 나는 최근에 내가 ExcelCellLocation를 저장했다 SQL Regex Split Column

전에 여기서 좀 더 일반적인 것으로 구현을 변경 한 지금 ExcelColumn, ExcelRowStartExcelRowEnd으로 그것을 파괴했다.

나는이 테이블의 모든 행을 취하여 ExcelCellLocation을 새 구현으로 분할하는 방법을 찾고 있습니다. 예를 들어

:

ExcelCellLocation 
F5 
AB23 

는 변화에 대한 이유는 내가 지금 더 나은 소송을 위해 변경 될 통합 문서 필요한 구현에 또 다른 스프레드 시트를 긁어하고 있다는 점이다

ExcelColumn | ExcelRowStart | ExcelRowEnd 
F   | 5    | 5 
AB   | 23   | 23 

을이되다 새 스프레드 시트는 현재 스크랩되어있는 스프레드 시트에서 계속 작동합니다. 새로운 매핑이 더 같이 표시됩니다 :

ExcelColumn | ExcelRowStart | ExcelRowEnd 
BC   | 10   | 150 
BC   | 160   | 300 

각 레코드를 반복하고 apropriate 변경하는 SQL 스크립트를 사용하여이 작업을 수행 할 수있는 방법이 있나요?

미리 감사드립니다.

+0

'AB'와 '23'각각이지만, 데이터 구조에 대한 충분한 정보가 포함되어 있어도 답을 얻을 수 있는지 확실하지 않습니다. 주로 귀하의 질문이 무엇인지 알지 못하기 때문입니다. –

답변

1
-- Sample data 
;with T(ExcelCellLocation) as 
(
    select 'F5' union all 
    select 'AB23' 
) 

-- Query 
select 
     left(ExcelCellLocation, patindex('%[0-9]%', ExcelCellLocation)-1) as ExcelColumn, 
     stuff(ExcelCellLocation, 1, patindex('%[0-9]%', ExcelCellLocation)-1, '') as RowStart 
from T 

결과 : 당신은 정규식 태그를 포함 시켰습니다, 나는 쉽게`F5`을 변환하는 정규 표현식을 상상`AB23`을 F``로 &`5` 또는 수

ExcelColumn RowStart 
----------- ----------- 
F   5 
AB   23 
+1

이 답변은 질문 자체에 대한 내 의견과 관련하여 제 질문 중 몇 가지를 명확히 해줍니다 : D –

+0

@MikaelEriksson 고맙습니다. 이 쿼리를 사용하여 쿼리에서 반환하는 대신 데이터베이스로 다시 커밋하는 방법은 무엇입니까? – shuniar

+0

@MikaelEriksson Nevermind 나는 그것을 알아낼 수 있었다. – shuniar