我在SQL SERVER 2005中运行如下代码
CREATE TABLE dbo.TEST
(F1 CHAR(34))
INSERT INTO dbo.TEST(F1)
VALUES('4867687319759356454824841899657115')
SELECT
CASE
WHEN 1=2 THEN 0
ELSE LEFT(F1,12)
END
FROM dbo.TEST
运行结果是: 转换 varchar 值 '486768731975' 时溢出了整数列。超过了其中最大的整数值。
如果把查询语句改成以下的语句就成功了
SELECT
CASE
WHEN 1=2 THEN '0'
ELSE LEFT(F1,12)
END
FROM dbo.TEST
差别就是THEN后面的0与'0'