对于 SSRS 2005 报告,我如何从数据库中读取不一致的 nvarchar 数据值作为绘制折线图的一致数字十进制数据?
nvarchar 列的实验室读数以 nvarchar(15) 数据类型绘制在图表上。
数据不一致的示例列,如图所示
示例列值:00123 102 (NULL) 333 456 N/R 无结果 567 589
对于 SSRS 2005 报告,我如何从数据库中读取不一致的 nvarchar 数据值作为绘制折线图的一致数字十进制数据?
nvarchar 列的实验室读数以 nvarchar(15) 数据类型绘制在图表上。
数据不一致的示例列,如图所示
示例列值:00123 102 (NULL) 333 456 N/R 无结果 567 589
你可以试试
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。
使用数据库去
select convert(decimal (10,2), ltrim(rtrim(columnname))) from table where isumeric(columnname) = 1 and ltrim(rtrim(columnname)) <> '.'