如何根据第三个字段将一个字段的值分配给另一个字段?

时间:2012-01-11 15:16:15

标签: sql sql-server-2005 tsql

我有三个字段,如果第三列等于某个值,我想得到第2列的值。我可以在SELECT中执行此操作,并使用IF或{ {1}}陈述?

4 个答案:

答案 0 :(得分:3)

CASE语句是最简单的方法。以下SQL比较两列。您可以将其更改为使用WHEN Col2 = 'xxxx' THEN xxxx'

SELECT Col1, Col2, CASE
                   WHEN Col2 = Col1 THEN 'True'
                   ELSE 'False'
                   END AS 'Columns Match'
  FROM Table

答案 1 :(得分:1)

希望这能引导你朝着正确的方向前进

Select 
    Case 
       when columnthree = 'VALUE' 
          then column2 
          else 'do something' 
    end as [column name]
from 
    table name

如果两列的数据类型不同,您可能还想进行一些转换

答案 2 :(得分:0)

您可以在CASE语句中使用SELECT子句 - IF在SQLServer中不会以这种方式工作。

答案 3 :(得分:0)

select Alpha, Beta, Gamma,
  case
    when Alpha > 2 * Beta then Gamma
    when Beta = Gamma then Alpha + 3
    when Gamma = 2 then 13
    else 42
    end as 'Omega'
  from Alphabet

第一场比赛获胜。

CASE返回一个值,因此在各种情况下可能会有所帮助:

delete ... where case when Id > Limit then 1 else 0 end = 1
update ... set ShoeSize = case when Wide = 1 then ShoeSize + 1 else ShoeSize end, ...