2011-08-11 16 views
0

私はキューブを作成しています。ソフトウェアを作成した人は、データ型の代わりにvarchar(50)のproductSizeフィールドを作成しました。たとえば、9または4.5x2を含む場合もあります。この状況で、計算されたメジャーがvarcharを10進数に変換できますか?キューブの文字列を10進数に変換する

編集:DSVでテーブルの列を右クリックして名前付き計算を作成することができます。私はまだ表現をコード化する方法を理解する必要があります。これは私の質問に

CASE 
WHEN SUBSTRING(ProductSize, 2,1) = 'x' THEN 0 // detects an 'x' in char 2 but I need to detect an x anywhere, and verify the string can be converted to a number 
ELSE 
    cast(ProductSize as DECIMAL) 
END 
+0

これは、基礎となるリレーショナルデータベースのSQLに関する質問です。 SQL Serverを想定すると、patindex()関数が役に立ちます。 文字列に表示される内容と表示されない内容が分からない場合は、回答するのが難しいです。 – Frank

答えて

1

答えは、私はちょうどのDataSetビューで名前付き計算を作成するためにSQLを使用することで簡単だった...私がこれまで持っているすべてです。上記のとおり、SQL構文を使用してparse文を作成するだけです。次の式は今のところ働きます。

CASE 
WHEN ISNUMERIC(ProductSize)<>1 THEN 
    0 // zero for now, later figure out SQL to parse alpha data 
ELSE 
    cast(ProductSize as INT) 
END 
関連する問題