我想从字符串中找到一个数字,并在sql server中获取该字母旁边的数字

时间:2017-03-22 15:49:02

标签: sql sql-server msbi

嗨我想在字符串中的字母旁边找到数字,就像我有

dplyr

列中的这些数据。现在我想从数据中找到X并将正确的数字拉到字母X. 请让我知道如何在sql server中编写查询来解决这个问题。

提前感谢。

1 个答案:

答案 0 :(得分:4)

这当然不漂亮,但它没有子查询。将charindex()patindex()substring()一起使用:

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 |
+--------+