替换和转换

时间:2016-11-22 09:48:03

标签: sql sql-server sql-server-2012

我制作了一个脚本,用于将数据从外部文件导入SQL表(SQL 2012)。 外部文件的第一列只是数字,SQL表的列是INT。

现在,在外部文件中,他们有插入字母数字数据,如'6B32E',它不再正确同步。

我无法更改SQL列的类型。

是否可以替换并转换为INT那种字符串。 ? 我的想法是用字母表中的地方号码替换字母。

在示例中,'6B32E'将变为'62325'

1 个答案:

答案 0 :(得分:1)

您可以使用REPLACE(26次)。它不会很漂亮,但它会起作用。它将开始这样的事情;

测试数据

CREATE TABLE #TestData (TextField nvarchar(5))
INSERT INTO #TestData (TextField)
VALUES
('6B32E')
,('A6E52')
,('58C69')

查询

SELECT
    TextField
    ,REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(TextField,'A',1),'B',2),'C',3),'D',4),'E',5) IntField
FROM #TestData

输出

TextField   IntField
6B32E       62325
A6E52       16552
58C69       58369