如何将不一致的nvarchar数据作为十进制数据读取

时间:2009-06-18 23:16:51

标签: sql-server tsql reporting-services reportingservices-2005

对于SSRS 2005报告,如何从数据库中读取不一致的nvarchar数据值作为绘制折线图的一致数字十进制数据?

nvarchar列的实验室读数在图表上绘制为nvarchar(15)数据类型。

示例列,数据不一致,如图所示

示例列值:00123 102(NULL)333 456 N / R否结果567 589

2 个答案:

答案 0 :(得分:2)

你可以尝试

SELECT CASE WHEN ISNUMERIC(nvCol) THEN CAST(nvCol as DECIMAL(15,0))
    ELSE 0.0 END as DecData
FROM YourTable

ISNUMERIC对于你的使用可能过于笼统(它允许一些非常奇怪的“数字”),如果是这样,那么你可能需要添加自己的条件来过滤。您还必须正确选择DECIMAL。最后,您可能希望检查WHERE子句以过滤掉这些行,而不是将它们默认为0.0。

答案 1 :(得分:0)

使用数据库 去

选择转换(十进制(10,2),ltrim(rtrim(columnname))) 从表 其中isnumeric(columnname)= 1和ltrim(rtrim(columnname))<> ''