本文介绍了SQL Server 算术溢出错误将表达式转换为数据类型日期时间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想自定义我的订单,如果数量为负,那么该行必须排在第一位,如果数量为正,我将按 ExpDate 对其进行排序

I want to customize my order by , if the Qty is negative then that row must be in fist then if the Qty is positive I will sort it by ExpDate

SELECT WhsCode,
       ItemCode,
       LotNumber,
       ExpDate,
       Qty
FROM rq_Test2
ORDER BY CASE
             WHEN qty < 0 THEN Qty
             ELSE ExpDate
         END

但是我收到了将表达式转换为数据类型日期时间的算术溢出错误."的错误.为什么?

But I am getting an error of " Arithmetic overflow error converting expression to data type datetime. " .. Why ?

谢谢..

推荐答案

有两个 case 语句

Have two case statements

Select
      WhsCode,
      ItemCode,
      LotNumber,
      ExpDate,
      Qty
from rq_Test2
order by case when qty < 0 then Qty else null end ,
         case when qty > 0 then ExpDate else NULL end

这篇关于SQL Server 算术溢出错误将表达式转换为数据类型日期时间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-29 03:40