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

时间:2009-06-18 22:56:48

标签: sql-server tsql reporting-services

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

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

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

columnvalues
00123
102
(NULL)
333
456
N/R
No Result
567
589

2 个答案:

答案 0 :(得分:0)

我的老板帮我解决了这个问题。您可以在以下查询的末尾添加更多子句,具体取决于数据中的不一致。

使用数据库 走 从表中选择convert(decimal(10,2),ltrim(rtrim(columnname))) 其中isnumeric(columnname)= 1 和ltrim(rtrim(columnname))<> ''

答案 1 :(得分:0)

假设您的表是LabData,您的数字列名为LabReading:

SELECT
    LabReadingValue =
        CASE 
            WHEN ISNUMERIC(LabReading)=1
            THEN CAST(LabReading AS DECIMAL(15,4))
            ELSE NULL 
        END
FROM
    LabData

如果要过滤掉非数字值,可以添加:

WHERE ISNUMERIC(LabReading)=1