Pivots,伙计......我只是想念它。也许是因为我没有做聚合。哎呀,也许一个支点不是这样做的方式。感觉它应该很简单,但它让我感到难过。
让我说我得到了这个:
SELECT col1
FROM tbl1
col1
====
414
589
如何将这两条记录恢复为:
fauxfield1 fauxfield2
========== ==========
414 589
出于这个问题的目的,有几点需要注意
答案 0 :(得分:2)
如果你只有有2个值,你就可以这样做
select
(select top(1) col1 from tbl1 order by col1) fauxfield1,
(select top(1) col1 from tbl1 order by col1 desc) fauxfield2;
但我不明白为什么需要避免聚合?你找到了一些残缺的SQL Server版本吗?普通查询将是
select min(col1) fauxfield1, max(col1) fauxfield2
from tbl1;
答案 1 :(得分:1)
如果你知道你只有两个,为什么不这样做:
SELECT
MIN(col1) ff1
, CASE MAX(col1)
WHEN MIN(col1) THEN NULL
ELSE MAX(col1)
END ff2
FROM
tbl1;
如果有两个值,则仅显示第二个值。
答案 2 :(得分:1)
您可以实施PIVOT
运算符:
select [1] as field1,
[2] as field2
from
(
select col1, row_number() Over(order by col1) rn
from yourtable
) src
pivot
(
max(col1)
for rn in ([1], [2])
) piv