2017-03-22 12 views
-3

안녕 나는 데이터의내가 문자열에서 번호를 찾아

"LOTS 1, 2 & 3 -50 X 140 EACH-"     
"PLOTS 17 & 18 -50 X150' EACH-" 

이러한 종류가 같은 문자열에서 편지 옆에있는 번호를 찾으려면 SQL 서버에서 해당 문자 옆에있는 번호를 얻으려면 란에 이제 데이터에서 X를 찾고 문자 X에 맞는 숫자를 가져 오려고합니다. 이 문제를 해결하기 위해 SQL Server에 쿼리를 작성하는 방법을 알려주십시오.

미리 감사드립니다.

답변

4

이것은 확실히 좋지는 않지만 서브 쿼리가 없으면 작동합니다. substring()charindex()patindex() 사용 :

create table t (str varchar(64)); 
insert into t values 
('LOTS 1, 2 & 3 -50 X 140 EACH-') 
,('PLOTS 17 & 18 -50 X150'' EACH-'); 

select 
    number = case when charindex('X',str)>0 then 
       left(ltrim(substring(str,charindex('X',str)+1,8000)) 
      ,patindex('%[^0-9]%',ltrim(substring(str,charindex('X',str)+1,8000)))-1 
      ) 
      else null 
      end 
from t 

rextester 데모 : http://rextester.com/CHFO33611

반환 :

+--------+ 
| number | 
+--------+ 
| 140 | 
| 150 | 
+--------+