<bdo id='EEZJg'></bdo><ul id='EEZJg'></ul>
  • <legend id='EEZJg'><style id='EEZJg'><dir id='EEZJg'><q id='EEZJg'></q></dir></style></legend>
    1. <small id='EEZJg'></small><noframes id='EEZJg'>

      1. <tfoot id='EEZJg'></tfoot>
        <i id='EEZJg'><tr id='EEZJg'><dt id='EEZJg'><q id='EEZJg'><span id='EEZJg'><b id='EEZJg'><form id='EEZJg'><ins id='EEZJg'></ins><ul id='EEZJg'></ul><sub id='EEZJg'></sub></form><legend id='EEZJg'></legend><bdo id='EEZJg'><pre id='EEZJg'><center id='EEZJg'></center></pre></bdo></b><th id='EEZJg'></th></span></q></dt></tr></i><div id='EEZJg'><tfoot id='EEZJg'></tfoot><dl id='EEZJg'><fieldset id='EEZJg'></fieldset></dl></div>

        在 SQL Server 中执行嵌套 case 语句逻辑的最佳方法

        时间:2023-10-08
        1. <legend id='z5Cge'><style id='z5Cge'><dir id='z5Cge'><q id='z5Cge'></q></dir></style></legend>

        2. <tfoot id='z5Cge'></tfoot>
          • <small id='z5Cge'></small><noframes id='z5Cge'>

                <i id='z5Cge'><tr id='z5Cge'><dt id='z5Cge'><q id='z5Cge'><span id='z5Cge'><b id='z5Cge'><form id='z5Cge'><ins id='z5Cge'></ins><ul id='z5Cge'></ul><sub id='z5Cge'></sub></form><legend id='z5Cge'></legend><bdo id='z5Cge'><pre id='z5Cge'><center id='z5Cge'></center></pre></bdo></b><th id='z5Cge'></th></span></q></dt></tr></i><div id='z5Cge'><tfoot id='z5Cge'></tfoot><dl id='z5Cge'><fieldset id='z5Cge'></fieldset></dl></div>
                  <tbody id='z5Cge'></tbody>
                  <bdo id='z5Cge'></bdo><ul id='z5Cge'></ul>
                  本文介绍了在 SQL Server 中执行嵌套 case 语句逻辑的最佳方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我正在编写一个 SQL 查询,其中返回的一些列需要根据相当多的条件进行计算.

                  我目前正在使用嵌套的 case 语句,但它变得很混乱.有没有更好(更有条理和/或可读性更强)的方法?

                  (我使用的是 Microsoft SQL Server,2005)

                  <小时>

                  一个简化的例子:

                  SELECT列1,col2,col3,案件WHEN 条件然后案件当条件 1然后案件当条件 2然后计算1ELSE计算2结尾别的案件当条件 2然后计算3ELSE计算4结尾结尾别的案件当条件 1然后案件当条件 2然后计算5ELSE计算6结尾别的案件当条件 2然后计算7ELSE计算8结尾结尾END AS 'calculatedcol1',第 4 行,col5 -- 等等发件人表

                  解决方案

                  你可以尝试一些 COALESCE 技巧,例如:

                  <前>选择合并(CASE WHEN 条件 1 THEN 计算 1 ELSE NULL END,CASE WHEN 条件 2 THEN 计算 2 ELSE NULL END,等等...)

                  I'm writing an SQL Query, where a few of the columns returned need to be calculated depending on quite a lot of conditions.

                  I'm currently using nested case statements, but its getting messy. Is there a better (more organised and/or readable) way?

                  (I am using Microsoft SQL Server, 2005)


                  A simplified example:

                  SELECT
                      col1,
                      col2,
                      col3,
                      CASE
                          WHEN condition 
                          THEN
                              CASE
                                  WHEN condition1 
                                  THEN
                                      CASE 
                                          WHEN condition2
                                          THEN calculation1
                                          ELSE calculation2
                                      END
                                  ELSE
                                      CASE 
                                          WHEN condition2
                                          THEN calculation3
                                          ELSE calculation4
                                      END
                              END
                          ELSE 
                              CASE 
                                  WHEN condition1 
                                  THEN 
                                      CASE
                                          WHEN condition2 
                                          THEN calculation5
                                          ELSE calculation6
                                      END
                                  ELSE
                                      CASE
                                          WHEN condition2 
                                          THEN calculation7
                                          ELSE calculation8
                                      END
                              END            
                      END AS 'calculatedcol1',
                      col4,
                      col5 -- etc
                  FROM table
                  

                  解决方案

                  You could try some sort of COALESCE trick, eg:

                  SELECT COALESCE(
                    CASE WHEN condition1 THEN calculation1 ELSE NULL END,
                    CASE WHEN condition2 THEN calculation2 ELSE NULL END,
                    etc...
                  )
                  

                  这篇关于在 SQL Server 中执行嵌套 case 语句逻辑的最佳方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:确定记录是否存在的最快方法 下一篇:如何从 SQL Server 中的值列表中进行选择

                  相关文章

                    <small id='jYElS'></small><noframes id='jYElS'>

                      • <bdo id='jYElS'></bdo><ul id='jYElS'></ul>
                      <i id='jYElS'><tr id='jYElS'><dt id='jYElS'><q id='jYElS'><span id='jYElS'><b id='jYElS'><form id='jYElS'><ins id='jYElS'></ins><ul id='jYElS'></ul><sub id='jYElS'></sub></form><legend id='jYElS'></legend><bdo id='jYElS'><pre id='jYElS'><center id='jYElS'></center></pre></bdo></b><th id='jYElS'></th></span></q></dt></tr></i><div id='jYElS'><tfoot id='jYElS'></tfoot><dl id='jYElS'><fieldset id='jYElS'></fieldset></dl></div>

                      <legend id='jYElS'><style id='jYElS'><dir id='jYElS'><q id='jYElS'></q></dir></style></legend>
                    1. <tfoot id='jYElS'></tfoot>