Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 如何在SQL 2008中选择具有特定列值的列?_Sql Server 2008_Join_Distinct - Fatal编程技术网

Sql server 2008 如何在SQL 2008中选择具有特定列值的列?

Sql server 2008 如何在SQL 2008中选择具有特定列值的列?,sql-server-2008,join,distinct,Sql Server 2008,Join,Distinct,表T1包含两列id和decision。id可能会重复各种决策。请参考以下示例: Table T1: |---------------------|------------------| | id | decision | |---------------------|------------------| | abc_0011 | Forward | |------

表T1包含两列id和decision。id可能会重复各种决策。请参考以下示例:

 Table T1:
    |---------------------|------------------|
    |      id             |     decision     |
    |---------------------|------------------|
    |      abc_0011       |      Forward     |
    |---------------------|------------------|
    |      abc_0011       |      Forward     |
    |---------------------|------------------|
    |      abc_0011       |      Reject      |
    |---------------------|------------------|
    |      abc_0012       |      Forward     |
    |---------------------|------------------|
    |      abc_0012       |      Forward     |
    |---------------------|------------------|

 Required Table:
    |---------------------|------------------|
    |      id             |     decision     |
    |---------------------|------------------|
    |      abc_0011       |      Reject      |
    |---------------------|------------------|
    |      abc_0012       |      Pending     |
    |---------------------|------------------|

这里有两个不同的idabc_011abc_012,其中abc_011出现三次,具有不同的决策,其中最后一个决策是拒绝,而abc_012出现两次,其中两个决策都是向前的,没有类似拒绝的决策。其思想是构造一个表,其中在任何阶段被拒绝的id必须显示reject,而在任何情况下未被拒绝的id必须显示pending。注意:id不得在最终表格中重复

下面的代码应该会给出预期的结果

;WITH CTE AS (
SELECT  ID,MAX(DECISION) DECISION
FROM T1
GROUP BY ID
)
SELECT  ID,CASE WHEN DECISION!='Reject' THEN 'Pending' ELSE DECISION END DECISION
FROM CTE

只有“转发”和“拒绝”是决策字段值?