如果最小(列)和最大(列)SQL查询只有一个值,则显示null

如果最小(列)和最大(列)SQL查询只有一个值,则显示null,sql,sql-server,tsql,Sql,Sql Server,Tsql,这是我原来的桌子 ID value value1 Value3 ----------------------------------- 123 45789 null 5648 234 45789 5468 null 12453 5846 589745 null 21536 5846 null 54689 期望输

这是我原来的桌子

ID        value    value1    Value3 
-----------------------------------
  123     45789    null       5648
  234     45789    5468      null
12453      5846    589745    null
21536      5846    null      54689
            
            
期望输出:

ID        value     value1    Value3        ID        value     value1    Value3    
-------------------------------------------------------------------------
  123     45789     null      5648            234     45789     5468        null
12453      5846     589745    null          21536      5846     null    54689
            
            
我的查询的当前输出

ID        value     value1    Value3    ID        value     value1     value3
---------------------------------------------------------------------------------
  123     45789      5468      5648       234     45789       5468      5648
12453      5846    589745     54689     21536      5846     589745     54689
查询:

select 
    min(ID) as ID, min(value) as value, min(value1) as value1,
    max(ID) as ID, max(value) as value, max(value1) as value1
from 
    table1

您可以从示例输入中获得预期输出:

select
  T1.ID,
  T1.value,
  T1.value1,
  T1.value3,
  T2.ID,
  T2.value,
  T2.value1,
  T2.value3
from Table1 T1
join Table1 T2
  on T1.value = T2.value
  and T1.ID < T2.ID
;
在行动中看到它: 您可能应该至少在一组列中添加一些别名

但是,不确定如何通过示例查询获得两行数据


如果需要调整/进一步详细信息,请发表意见。

请解释您想要实现的逻辑。如果第一行和第二行的值相等,只需将其放入一行即可。value=value,45789=45789标题min/max中的要求与您对Gordon评论的回应有何关联?如果需要,您可能希望扩展示例数据和预期输出以进行澄清。