支点,男人...我只是失踪了。 也许是因为我没有做一个汇总。 哎呀,也许枢轴是不是这样做的方法。 这感觉就像它应该是简单的,但它难住我了。
比方说,我有这样的:
SELECT col1
FROM tbl1
col1
====
414
589
我怎样才能得到这两个记录回来为:
fauxfield1 fauxfield2
========== ==========
414 589
警告的夫妇这个问题的目的
- 我永远不会回去两个以上的记录
- 我总是会回去整数,但我不知道他们是什么 。
您可以实现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
请参阅SQL拨弄演示
如果你永远只能将有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;
如果你知道你唯一获得两个,为什么不这样:
SELECT
MIN(col1) ff1
, CASE MAX(col1)
WHEN MIN(col1) THEN NULL
ELSE MAX(col1)
END ff2
FROM
tbl1;
这只能说明一个第二值,如果有两个。