2016-07-21 12 views
0

私はこの巨大なテキストファイルをSSMSにインポートし終えました。書式がRagged Rightだったので、誤って2つの列を1つに配置しました。そこで、適切なヘッダーを含む新しい列を追加しました。しかし今私のコラムdef_namには、そこに属していない実際のカラム値の前に4文字があります。文字列の新しい列への挿入

例:

def_name      rea 
PLEA WUNSCH, JOHN ROGER   NULL 
SFJS VILLARREAL, JACOB ANDERS NULL 
DISP TORRES, STEVEN    NULL 
DISP ATKINSON, JAMES FRANKLIN NULL 
HEAR GODARZI, FOROUZAN   NULL 
NTRL REYES, MANUEL JR   NULL 
HEAR HANLON, THOMAS JOSEPH  NULL 
HEAR HANLON, THOMAS JOSEPH  NULL 
DISP WILSON, MELISSA WAYNETTE NULL 
HEAR PROSPER, TIMOTHY DANIEL NULL 

対物は以下の通りです:私は最初のスペース前にすべての文字を取得し、rea

と呼ばれる私の新しい空の列にその値を挿入し、この列に文字列を分割したいです

したがって、これで終了します。

def_name     rea 
WUNSCH, JOHN ROGER   PLEA 
VILLARREAL, JACOB ANDERS SFJS 
TORRES, STEVEN    DISP 
ATKINSON, JAMES FRANKLIN DISP 
GODARZI, FOROUZAN   HEAR 
REYES, MANUEL JR   NTRL 
HANLON, THOMAS JOSEPH  HEAR 
HANLON, THOMAS JOSEPH  HEAR 
WILSON, MELISSA WAYNETTE DISP 
PROSPER, TIMOTHY DANIEL  HEAR 

このような場合は、どのようなクエリを書くのが最適でしょうか?私は300万行以上を持っていると考えています。

答えて

3

あなたはおそらくこのようなことをすることができます。

update YourTable 
set rea = LEFT(def_name, 4) 
    , def_name = stuff(def_name, 1, 5, '') 
+1

ものがdef_nameの値をゼロになる、 '更新TセットREA =左(def_name、4)、def_name =ストリング(def_name、6、lenは(def_name))は'しかし働くだろう。 – jpw

+0

@jpw - あなたがそれをNULLにするとはどういう意味ですか?それはOPが望んでいる最初の5文字に空の文字列を入れるでしょう。あなたが提案した部分文字列は同じことを達成するでしょう。そこに入るためにはちょっと別の構文です。 :) –

+0

私はそれを試して、それはすべてのdef_nameをnullに設定します。それは私が意味していたものだった:)私はものがうまくいくはずだと思うが、ここに何か間違っている。 – jpw

関連する問題