案例中的Cognos CAST

时间:2018-12-11 16:11:11

标签: sql case cognos-10

我以为我会做一些简单的事情,但这给了我错误。我正在尝试将我们的订单号与订单后缀结合起来,使用CAST语句可以毫无问题地做到这一点。我需要将结果定为订单#-##(123456-01)。当发布的版本超过九个时,就会出现问题,并且我在组合中添加了“ -0”,得到123456-010。我已经尝试过了,但是它给了我解析错误:

CASE WHEN [Order Suffix] > 9
THEN CAST (([Order #],varchar(7)) + '-' + CAST ([Order Suffix],varchar(2)) 
ELSE CAST (([Order #],varchar(7)) + '-0' + CAST ([Order Suffix],varchar(2))
END

我在做什么错,有没有更好的方法来做到这一点?预先感谢。

1 个答案:

答案 0 :(得分:0)

CAST()使用语法as <type>基本上是所有数据库(这是一个标准功能。

也许这会做您想要的:

 (CAST(([Order #] as varchar(7)) +
  (CASE WHEN [Order Suffix] <= 9 THEN '-0' ELSE '-' END) +
  CAST([Order Suffix] as varchar(2))
 )

请注意,这排除了两个表达式中的通用代码。我认为这有助于维护。