SQL 列表函数去除精度

Posted

技术标签:

【中文标题】SQL 列表函数去除精度【英文标题】:SQL List Function Removing Precision 【发布时间】:2009-02-05 23:27:12 【问题描述】:

我正在使用 LIST 函数来创建一个 ';'分隔的值列表。类型是数字 (19,2)。由于某种原因,使用 list 函数时似乎忽略了精度。在此列上执行简单选择时,值看起来不错,即“12.00”。但是,如果我使用 LIST() 我的结果格式为“12.000000”

这是我的 LIST 用法:

LIST(case when tblWOService.PricePerVehicle is null then ' ' else CONVERT(decimal(19,2),tblWOService.PricePerVehicle end,';')

CONVERT 不会改变结果。有什么想法吗?

谢谢!

【问题讨论】:

【参考方案1】:

您是否尝试过显式转换您的空字符串?

LIST(
    case when tblWOService.PricePerVehicle is null then CONVERT(decimal(19,2),' ')
        else CONVERT(decimal(19,2),tblWOService.PricePerVehicle) end,';'
)

我在 T-SQL 中遇到了与 CASE 语句类似的数据类型问题。

【讨论】:

以上是关于SQL 列表函数去除精度的主要内容,如果未能解决你的问题,请参考以下文章

sqlserver中去掉空格的函数是社么

如何通过pl sql函数从表中生成列表?

sql [CreateTableFromFieldListIncludingTypes]从字段列表创建表动态地包括类型,比例和精度#table #create #dyna

sql server去除字符串空格的ltrim()和rtrim()函数

MySQL的SQL语句 -复制语句(11)- 控制副本服务器的 SQL 语句 - 配置源列表的函数

eval 函数的应用 (去除包装在列表外面的引号)