bugfix> sql-server > 投稿

次のような値を持つ列ProductDetailsがあります

j Jameson Mbc 6.5, abc 8 abc blah
Napa california Mbc 1 abc 3.5
Washington k Mbc 2.5 abc 6
New york city is awesome

何千ものレコードがあります

以下のように、他の2つの列Mbcとabcを入力します。

Mbc
6.5
1
2.5
abc
8
3.5
6

(DT_STR,10,1252)substring(ProductDetails, findstring(“Mbc”, ProductDetails,1)+4,3) を試した

abc = (DT_STR,10,1252)substring(ProductDetails, findstring(“abc”, ProductDetails,1)+4,3) の場合

私は結果を取得し、いくつかの値は 1C として来ていますまたは 2b など、数字だけの文字が欲しい

などの列値の場合 New york city is awesome Null を入力したいだけです等

ありがとう

回答 1 件
  • 「abc」列

    FINDSTRING( [ProductDetails],"abc", 1 ) > 0 ? SUBSTRING(SUBSTRING([ProductDetails], FINDSTRING( [ProductDetails],"abc", 1 ) + 4 , 3),1,LEN( SUBSTRING([ProductDetails], FINDSTRING( [ProductDetails],"abc", 1 ) + 4 , 3) ) - FINDSTRING( SUBSTRING([ProductDetails], FINDSTRING( [ProductDetails],"abc", 1 ) + 4 , 3) ," ",1)) : NULL(DT_WSTR,50)
    
    

    「Mbc」列

    FINDSTRING( [ProductDetails],"Mbc", 1 ) > 0 ? SUBSTRING(SUBSTRING([ProductDetails], FINDSTRING( [ProductDetails],"Mbc", 1 ) + 4 , 3),1,LEN( SUBSTRING([ProductDetails], FINDSTRING( [ProductDetails],"Mbc", 1 ) + 4 , 3) ) - FINDSTRING( SUBSTRING([ProductDetails], FINDSTRING( [ProductDetails],"Mbc", 1 ) + 4 , 3) ," ",1)) : NULL(DT_WSTR,50)
    
    

あなたの答え