【问题标题】:adding '0,' before every column在每列之前添加“0”
【发布时间】:2016-09-28 18:36:13
【问题描述】:

我在我的 sql 中的每一列之前尝试一个 0

select TemporaryStock * '0,'+ cast( VAT as varchar(50)) from Market

我收到错误消息 8114,级别 16,状态 5,第 1 行 将数据类型 varchar 转换为 float 时出错。

【问题讨论】:

  • '0,' 不是浮点值,那么它将如何从 varchar 转换为浮点数?
  • 为什么你的 SQL 中有一个星号?
  • 我应该使用 0.?
  • 真的不清楚你要做什么。也许是一些样本数据和期望的结果
  • 你的输入是什么,你的预期输出是什么?

标签: sql-server sql-server-2008


【解决方案1】:

你不需要转换...你只需要移动小数点。

select TemporaryStock * (VAT * 0.01) from Market

如果您希望每个值都像 0.###### 那么您可以使用:

select TemporaryStock  * convert(decimal(38,37),'0.' + convert(varchar,VAT))

【讨论】:

    【解决方案2】:

    如果您想在增值税前添加“0”,请使用 CONCAT(args1, args2) 方法:

    从 ExpressMarket 中选择 CONCAT('0',VAT);

    注意:两个参数都应该是 string 类型。

    否则您可以参考以下内容以了解有关如何连接和别名的更多信息。

    MySQL select with CONCAT condition

    【讨论】:

    • OP 标记了 SQL Server 2008 而不是 MySQL。 SQL Server 中的CONCAT() 仅适用于 2012 年以后
    • sql server 需要它
    猜你喜欢
    • 1970-01-01
    • 2017-08-03
    • 2019-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-23
    • 2016-02-01
    相关资源
    最近更新 更多