【发布时间】:2014-08-07 07:19:15
【问题描述】:
我对 SQL 还很陌生,但仍在尝试理解一些概念... 我创建了一个简单的表,我正在尝试使用 CASE 语句更新表中的一列。我理解为什么该声明不起作用,但我对如何解决它感到困惑....
这是我的代码:
CREATE TABLE q5
(
UserID INT,
Month INT,
Score INT
)
INSERT INTO q5(UserID, Month, Score)
VALUES (1,1,10), (1,2,5), (1,1,6), (2,8,6), (3,1,9), (3,4,11), (3,6,9), (4,9,10), (5,1,2);
UPDATE q5
SET
Month = CASE WHEN Month IN (1, 2, 3) THEN 'First Quarter'
WHEN Month IN (4, 5, 6) THEN 'Second Quarter'
WHEN Month IN (7, 8, 9) THEN 'Third Quarter'
ELSE 'Fourth Quarter'
END
我收到此错误:
消息 245,第 16 级,状态 1,第 1 行 将 varchar 值“First Quarter”转换为数据类型 int 时转换失败。
【问题讨论】:
-
您正在尝试将字符(“第一季度”等)存储在只能包含数字的字段(月列)中。它不起作用,您必须选择另一列。