2016-11-22 13 views
0

外部ファイルからSQLテーブル(SQL 2012)にデータをインポートするためのスクリプトを作成しました。 外部ファイルの最初の列は数値のみで、SQLテーブルの列はINTです。置換と変換

外部ファイルに '6B32E'のような英数字のデータが挿入され、正しく同期されませんでした。

SQLカラムのタイプを変更することはできません。

INTのような文字列を置き換えて変換することは可能ですか? ? 私の考えは、アルファベット文字をアルファベットの場所番号で置き換えることです。たとえば '6B32E' は、

は '62325'

+0

あなたは常に62325だった行と、それに変換する行を区別する必要がある場合はどうなりますか? – MartW

答えて

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 
+0

アルファベット以外の文字については、26文字以上の文字を使用する必要があります。 – iamdave

+0

はい、アルファベット以外の文字があった場合は、より多くの文字を置き換える必要があります。私はアルファベット文字をアルファベットの対応する位置に置き換える方法を尋ねられました。 –