我有一个包含类似值的列:分裂数字和字母2005台
034004
034010
06012AB
06012C
06012D
06012P
06026C
06026P
有没有办法单独或在两个单独的列,数字和字母拆分这些?难道不是所有的数字都包含字母吗?
我使用SQL Server Management Studio 2005中
干杯提前为任何能指出我在正确的直接
我有一个包含类似值的列:分裂数字和字母2005台
034004
034010
06012AB
06012C
06012D
06012P
06026C
06026P
有没有办法单独或在两个单独的列,数字和字母拆分这些?难道不是所有的数字都包含字母吗?
我使用SQL Server Management Studio 2005中
干杯提前为任何能指出我在正确的直接
假设它始终是数字一组,然后(可能)一组字母
SELECT SUBSTRING(YourCol, 0, P),
SUBSTRING(YourCol, P, 8000)
FROM YourTable
CROSS APPLY(SELECT PATINDEX('%[^0-9]%', YourCol + 'A')) Split(P)
非常感谢将数字和字母分成2列。非常感谢 – user1086159 2012-01-06 11:13:02
感谢您的回答,它为我工作。但是我不明白你对Split(P)做了什么。你能解释一下吗? – ristonj 2013-07-06 00:19:21
@ristonj只是将表达式PATINDEX('%[^ 0-9]%',YourCol +'A')'的结果放入一个别名为'P'的列中,然后我可以在'SELECT'子句中引用而不需要重复更长的表达。 – 2013-07-06 17:33:59
字母是否可以混合(即12BA34CD)还是始终是数字,后面是字母(如果有)? SQL的字符串函数并不是很好,但你所要求的可能可以用它们来完成。 – Sparky 2012-01-06 11:01:58
它总是一个数字后面跟一个数字(如果有的话)的设置格式 – user1086159 2012-01-06 11:06:56