如果我有一个包含
number
列的表,并且想要根据数字列中的值创建一个具有“高”、“中”或“低”值的新列,我可以使用 if/else 语句吗去做这个?如果是的话该怎么写?
我有使用when/then语句创建列的代码:
use master
select
*,
case
when (number > 40) then 'high'
when (number between 30 and 40) then 'medium'
else 'low'
end as 'newColumn'
from
myTable
基本上,我试图理解 if/else 和 when/then 语句之间的区别,以及为什么使用其中一个而不是另一个。
这个 if/else 代码不起作用,但我不知道是否是因为我编码错误:
use master
select
*,
if (number > 40)
'high'
else if (number between 30 and 40)
'medium'
else 'low'
from
test
IF 语句控制流程并根据条件决定接下来要计算的内容,而 CASE 是返回所需值的函数。
当您将单个表达式与一系列唯一值进行比较时,CASE 语句比 IF 语句更具可读性,并且也更高效。
可能缺少“as name”