我在一个包含1,700行变量的存储过程中编写了一个非常基本的SQL CASE
语句:即
CASE Color
WHEN '1' THEN 'Blue'
WHEN '2' THEN 'Red'
.....
WHEN '1700' THEN 'Violet'
ELSE Color
END as 'color'
我超过了最大长度吗?存储过程构建,但是当我从网站调用它时,我得到一个运行时错误(当我只有1300它工作正常)。
感谢您的帮助!
答案 0 :(得分:0)
我所知道的CASE
表达式的唯一限制是你不能将它们嵌套超过10深,这与你正在做的事情无关。存储过程的长度限制为250MB或批量大小,以较小者为准,但非常肯定会阻止您首先构建过程,并且不太可能达到该限制。
也许其他人可以找出导致此失败的技术原因,但有一点很清楚,您应该使用包含所有数字和颜色对的查找表,因此您可以JOIN
,例如:
SELECT COALESCE(b.Color_Name,a.Color)
FROM YourTable a
LEFT JOIN lkp_Colors b
ON a.Color = b.Color_ID