【问题标题】:TSQL, case, convert, replace endTSQL,大小写,转换,替换结束
【发布时间】:2010-08-13 12:17:07
【问题描述】:

需要帮助理解我在这里的语法做什么,请帮助!我不仅需要从浮点数转换为十进制数,而且还需要覆盖要迁移到相同格式和数据(在这种情况下)的原始数据,以匹配较新的数据。

,CASE  
   WHEN fInvReqMargin IS NOT NULL THEN  
     (CONVERT(DECIMAL(7, 7), fInvReqMargin)(REPLACE(fInvReqMargin, fInvReqMargin, INVESTOR_REQUIRED_MARGIN_FC)))
   ELSE NULL 
 END as INVESTOR_REQUIRED_MARGIN_FC

错误:消息 156,级别 15,状态 1,行 1 关键字“CASE”附近的语法不正确。

谢谢!

【问题讨论】:

  • 嘘,这是一个相当混乱的案例陈述。鉴于它全部使用一个字段,您是否考虑过将其放入标量 UDF 中?这样您就可以逐步建立价值。
  • fInvReqMargin 不为空时,您想要做什么没有任何意义 - 您是否尝试将替换的值转换为十进制,或者将转换后的值添加到被替换的值(但是参数不对……

标签: sql-server tsql string replace case


【解决方案1】:

问题在于 CONVERT 和 REPLACE 语法。在没有看到数据的情况下,我无法确定您是否尝试将样式参数提供给CONVERT。如果你是那么语法应该是

CONVERT( DECIMAL ( 7,7 ), fInvReqMargin,(REPLACE(fInvReqMargin, fInvReqMargin, INVESTOR_REQUIRED_MARGIN_FC))) 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-15
    • 1970-01-01
    • 2021-10-18
    • 2014-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多