首页 > 解决方案 > 条件所需的sql查询支持

问题描述

我有一个查询,如果 vatgroup 选择x6x7在输出中必须显示'-',而不是必须显示即将到来的值。根据以下查询,我的输出*与 x6 或 x7 不同。

case when t1.VatGroup in('X6','X7') then '-' 
Else CAST(CAST(sum(t1.vatsum) As Int) AS Varchar(1)) end 'LineVat_LCNew',

谢谢维诺特

标签: sqlsql-server

解决方案


您正在将整数总和转换为varchar(1),这意味着如果sum大于 1 位,您将无法将其放入 a 中varchar(1)。改为使用varchar(10)这意味着您最多可以存储 10 位数字。

case when t1.VatGroup in('X6','X7') then '-' 
Else CAST(CAST(sum(t1.vatsum) As Int) AS Varchar(10)) end 'LineVat_LCNew'

推荐阅读