【发布时间】:2023-01-19 21:38:38
【问题描述】:
我试图从给定值中找到偶数或奇数,问题是我想更新导致 select 语句的 E_and_o 列。有谁可以帮助我吗。
不知道我哪里做错了。
Create table EvenRodd(
Nrow INT,
E_and_O VARCHAR(15));
///Select statement//
Select nrow, E_and_O,
Case
When Mod(nrow, 2) != 0 then 'Odd'
When Mod(nrow, 2) = 0 then 'Even'
end
From EvenRodd;
//Update //////
Update evenrodd set e_and_o = (Select evenrodd.nrow,
Case
When Mod(evenrodd.nrow, 2) != 0 then 'Odd'
When Mod(evenrodd.nrow, 2) = 0 then 'Even'
end
From EvenRodd) WHERE e_and_o IS NULL;
【问题讨论】:
-
为什么要使用 ((uncorrelated) 子查询?为什么不直接将
CASE表达式作为赋值表达式? -
或者,更好的是,考虑到该值基于
Nrow的值,为什么不使用计算列?
标签: sql sql-server