SQL中if和when语句的区别

问题描述 投票:0回答:2

如果我有一个包含

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
sql-server if-statement case-when
2个回答
1
投票

IF 语句控制流程并根据条件决定接下来要计算的内容,而 CASE 是返回所需值的函数。

当您将单个表达式与一系列唯一值进行比较时,CASE 语句比 IF 语句更具可读性,并且也更高效。


0
投票

可能缺少“as name”

© www.soinside.com 2019 - 2024. All rights reserved.