我们有一个名为DATA的表,其中包含一个列为varchar()的列。以下是该列中的值:
Raj0014
Dee0052ak
000Pawan
Rah454545ul
我们需要分隔int值和字符值,并插入到另一个名为DATA1的表中,该表有两列(id int,name varchar(50))。
结果应该是:
ID Name
0014 Raj
0052 Deepak
000 Pawan
454545 Rahul
答案 0 :(得分:1)
如果您不介意在SQL中执行此操作,您可以只选择该列两次,并使用一堆嵌套的REPLACE函数来替换一列中的所有数字,并且所有字母都替换为没有任何东西的另一列。它可能看起来有点混乱,但就开发时间和性能而言,它可能是最快的选择。像这样,但是对于你需要摆脱的所有字母字符重复它:
REPLACE(REPLACE(data, 'a', ''), 'b', '')
对于第二列,再次重复您需要摆脱的所有数字字符:
REPLACE(REPLACE(data, '0', ''), '1', '')
如果您需要/想要在SSIS中执行此操作,则可以在派生列表达式中使用嵌套替换构思。除此之外,脚本组件是最明显的想法,只要您熟悉C#或VB.NET,或者与某人合作 - 您可以使用正则表达式。
答案 1 :(得分:0)
您可以编写像t-sql这样的现场脚本来解析您的值并选择整数。使用像Perl这样的外部脚本来处理它们可能会更容易。
如果您已经有一个包含所有可能ID的表,您可以进行连接以从字符串值中删除它们。