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

问题描述:

我有三个字段,如果第三列等于某个值,我想获得第2列的值。我可以在SELECT中做到这一点,我会使用IFCASE陈述吗?如何根据第三个字段将一个字段的值分配给另一个字段?

+2

你想,如果第三列*不*等于某个值来做些什么? – AakashM 2012-01-11 15:18:09

+1

到目前为止,您应该真正发布示例数据,预期输出和查询。 – jadarnel27 2012-01-11 15:19:45

A CASE声明将是最简单的方法来做到这一点。以下SQL比较两列。你可以改变这个使用WHEN Col2 = 'xxxx' THEN xxxx'

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

你可以一个SELECT语句中使用CASE条款 - IF不会SQLServer的这种方式工作。

希望这会导致你在正确的方向

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

而且你可能需要做一些转换如果两列数据类型是不同的

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, ...