将一列拆分为两列 - SQL Server

时间:2018-02-23 14:27:53

标签: sql sql-server

我有2条数据

     Column1
DY04837293530000LFOY
DY9586074510000LOY

我正在寻找这个结果

 Column1           Column2
DY04837293         530000
DY95860745         10000

我需要取前10个字符并将它们放在第一列中,然后删除末尾的字符,只需将中间的剩余数字添加到第2列。

任何人都可以就最佳方法向我提出任何建议吗?感谢

1 个答案:

答案 0 :(得分:3)

DECLARE @test VARCHAR(255) = 'DY04837293530000LFOY'

SELECT  @test ori
,       SUBSTRING(@test, 1, 10) first_10
,       SUBSTRING(@test, 11, PATINDEX('%[^0-9]%', SUBSTRING(@test, 11, LEN(@test))) - 1) last_numbers

结果:

+----------------------+------------+--------------+
|         ori          |  first_10  | last_numbers |
+----------------------+------------+--------------+
| DY04837293530000LFOY | DY04837293 |       530000 |
+----------------------+------------+--------------+