SQL 中 if 和 when 语句的区别
Difference between if and when statements in SQL
如果我有一个带有 number
列的 table 并且想要创建一个值为 'high'、'medium' 或 'low' 的新列根据数字列中的值,我可以使用 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 是一个 returns 所需值的函数。
当您将单个表达式与一系列唯一值进行比较时,CASE 语句比 IF 语句更具可读性,而且效率更高。
如果我有一个带有 number
列的 table 并且想要创建一个值为 'high'、'medium' 或 'low' 的新列根据数字列中的值,我可以使用 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 是一个 returns 所需值的函数。
当您将单个表达式与一系列唯一值进行比较时,CASE 语句比 IF 语句更具可读性,而且效率更高。