在Cube中将字符串转换为十进制

时间:2011-08-11 21:21:27

标签: ssas

我正在创建一个多维数据集,编写软件的人在数据中创建了一个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

1 个答案:

答案 0 :(得分: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