2011-08-11 29 views
0

我正在創建一個多維數據集,並且編寫該軟件的人員在數據varchar(50)中創建了productSize字段,而不是數字數據類型。例如,它也可能包含9或4.5x2。在這種情況下,計算出的度量值是否可以將varchar轉換爲小數點?在多維數據集中將字符串轉換爲十進制

編輯:現在我意識到我可以通過右鍵單擊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

的回答我的問題是,一個簡單的我只是使用SQL創建DataSet中的視圖命名計算。如上所述,這只是使用SQL語法創建解析語句的問題。以下表達式適用於現在。

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