我想将一列转换为两列,并首先发送一个数字符号,
(1,2,3 ......)从父列和char到第二个。仅在SQL Server中使用查询
+-------+
| place |
+-------+
| 1a |
| 2a |
| 4c |
| 4b |
| 2d |
| 2c |
| 1d |
| 1a |
| 1b |
| 3c |
+-------+
期望输出
+------+------+
| col1 | col2 |
+------+------+
| 2 | a |
| 3 | b |
| ... | ... |
+------+------+
答案 0 :(得分:0)
如果数字部分始终是第一个,那么使用PATINDEX可以获得最后一个数字的索引,之后只需使用LEFT和RIGHT(由@建议) Larnu)
declare @tbl as table (
place varchar(5)
)
insert into @tbl values ('1a'), ('2b'), ('4c'), ('5e'), ('27gg')
select
LEFT(place, PATINDEX('%[0-9][^0-9]%', place)) as col1
,RIGHT(place, LEN(place) - PATINDEX('%[0-9][^0-9]%', place)) as col2
from @tbl