嗨我想在字符串中的字母旁边找到数字,就像我有
dplyr
列中的这些数据。现在我想从数据中找到X并将正确的数字拉到字母X. 请让我知道如何在sql server中编写查询来解决这个问题。
提前感谢。
答案 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 |
+--------+