繁体   English   中英

我可以使用IF…ELSE语句设置字段吗? (T-SQL)

[英]Can I use an IF…ELSE statement to set a field? (T-SQL)

我目前有一个查询,如果两个值使用INNER JOIN从两个不同表中的两个字段匹配,则将字段的值设置为“ 1”。 当前是这样的:

UPDATE [ARCSEQP]
SET [isKid] = 1
FROM [ARCSITE]
INNER JOIN [ARCSEQP]
ON [ARCSITE].[CSI_SVID] = [ARCSEQP].[SERVID]

这很完美。 但是,如果联接中的值不匹配,我也想将[isKid]设置为0。 我可以通过编写单独的更新语句来做到这一点,但我想知道是否可以使用某种IF ... ELSE语句来做到这一点。 这可能不是最好的方法,但它似乎比两个单独的更新语句更有效。 如果我错了,那就去纠正我。

使用LEFT JOINCASE语句。

UPDATE  [ARCSEQP]
SET     [isKid] = CASE WHEN [ARCSEQP].[SERVID] IS NULL THEN 0 ELSE 1 END
FROM    [ARCSITE]
        LEFT JOIN [ARCSEQP]
            ON [ARCSITE].[CSI_SVID] = [ARCSEQP].[SERVID]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM