2015-01-12 2 views
0

varchar(300) (일부 URL 포함) 열이있는 표가 있는데이 열의 일부 값을 새로운 integer 열로 추출해야합니다.SQL에서 긴 문자열의 정수 값 추출

원본 열 :

https://my_domain.com/?item1=value1&item2=value2&searching_field=int_value&item4=value4 

나는 문자열을 searching_field=int_value을 찾아 테이블에 int_value를 삽입해야합니다.

UPD. 나는 좋은 도구를 발견 REGEXP_SUBSTRING 나는 아래와 같이 사용하려고 해요 :

SELECT REGEXP_SUBSTR(col_name, 'searching_field=[0-9]+', charindex('searching_field=', col)) as col from my_table 
+0

내가 가진 문제를 생각하여' REGEXP '는 단 하나의 문자를 차지한다는 것입니다. 3 문자 (숫자)를 대치하고 싶다면,'REGEXP'는''searching_field = [0-9] [0-9] [0-9] + & '' – SouravA

+0

여야 만합니다. 그러나' 'searching_field = [0-9] + '는 나를 위해 올바르게 작동합니다. – Daria

+1

[This] [1]은 해결책입니다. http://stackoverflow.com/a/28001029/4247360 – Daria

답변

1
DECLARE @occur_start INT; 
DECLARE @occur_end INT; 

CREATE TABLE tempdb..#Temp 
(col varchar(300), IntVal int) 

INSERT INTO tempdb..#Temp 
select col, SUBSTRING(col, CHARINDEX('searching_field=', col), CHARINDEX('&item4=value4', col) - CHARINDEX('searching_field=', col)-1) IntValue 
FROM YourTable 

INSERT INTO YourOtherTable 
SELECT IntValue FROM #Temp 
+0

덕분에 많은 ... 난 후 이동 실제 값을 모르지만'searching_field : 나는 내 자신의 [1]하여 만든 = int_value' ... 그래서 'item4 = value4'가 아닐 수도 있습니다. 뭔가 다를 수 있습니다. – Daria

+0

좋아요. 내 값의 최대 길이는 10이라고 가정 해 봅시다. 확인 / – Daria