在SQL Server中拆分列

问题描述 投票:2回答:2

我正在尝试在SQL中拆分列。有一个地址,然后是一系列空格(在行之间变化)和一个4或5个字符的日期(例如11/04或3/15),然后是另一个大的空格集。

我想抓住日期,但不要让它们被切断。我现在的一个大问题是邮政编码的最后一位数字将进入日期,否则我们将根据我们使用的方法切断日期的第一部分

,CASE WHEN Addresses ='Missing' THEN 'Missing'  ELSE  RIGHT(replace(Addresses2,space(1),''),6) END AS EmploymentDate
,CASE WHEN Addresses ='Missing' THEN 'Missing'  ELSE  RIGHT(replace(Addresses2,space(1),''),7) END AS EmploymentDate2

sql sql-server
2个回答
2
投票

从右边修剪空格,然后取日期,然后从左边修剪空格:

SELECT t.Addresses2,LTRIM(RIGHT(RTRIM(t.Addresses2),5)) AS [EmploymentDate]
FROM [YourTableName] t
;

1
投票

你可以使用patindex()。假设在日期之前至少有三个空格:

select trim(substring(address, patindex('%   [0-9]%', address) + 3, 5))
© www.soinside.com 2019 - 2024. All rights reserved.