【问题标题】:What is the 'when keyword' used for in T-SQL?T-SQL 中使用的“when 关键字”是什么?
【发布时间】:2019-06-12 19:22:54
【问题描述】:

T-SQL 中的when 关键字是做什么用的?

when

注意:我尝试在网络上搜索此内容(例如“谷歌搜索”)......但是由于“何时”这个词无处不在,我无法找到一个好的解释。

此外,SQL 关键字列表不包括“when”,因此该列表不是详尽无遗的,或者它是 T-SQL 独有的(或者它可能是在某些“较新”版本的 T-SQL / SSMS 中添加的) .链接到这个特定的 SQL 关键字站点: https://www.w3schools.com/sql/sql_ref_keywords.asp

【问题讨论】:

  • 请参阅CASE 声明的文档。

标签: sql-server tsql keyword


【解决方案1】:

它与 CASE 关键字一起使用,它本质上就像一个开关或“if”语句......例如:

SELECT 
    CASE WHEN [Column] = 1 THEN 'Column is 1'
         WHEN [Column] = 2 THEN 'Column is 2'
         ELSE 'Column is not 1 or 2'
         END AS [Description]

【讨论】:

    【解决方案2】:

    WHEN 也是MERGE 声明的一部分:

    根据与源表的连接结果对目标表运行插入、更新或删除操作

    MERGE
        [ INTO ] <target_table> [ WITH ( <merge_hint> ) ] [ [ AS ] table_alias ]  
        USING <table_source>
        ON <merge_search_condition>  
        [ WHEN MATCHED [ AND <clause_search_condition> ]  
            THEN <merge_matched> ] [ ...n ]  
        [ WHEN NOT MATCHED [ BY TARGET ] [ AND <clause_search_condition> ]  
            THEN <merge_not_matched> ]  
        [ WHEN NOT MATCHED BY SOURCE [ AND <clause_search_condition> ]  
            THEN <merge_matched> ] [ ...n ]  
    ;
    

    【讨论】:

    • 谢谢,这可能对某人非常有用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-14
    • 2014-09-27
    • 1970-01-01
    相关资源
    最近更新 更多