這樣的例子表的最小正數,我想所有的負數和最小正數(0含稅),每ID列出所有負數,並從表
declare @tbl table(id INT, value decimal, someData varchar(10))
insert into @tbl
values(1,-3,123),(1,-2,234),(1,-1,345),(1,3,456),(1,4,567),(2,-4,678),(2,-2,789),(2,1,890),(2,2,135),(3,-5,246),(3,10,357)
select * from @tbl where value < 0 union
select id, min(value),someData from @tbl WHERE value > 0 group by id,somedata
我試圖找到一個解決方案通過分開弊端和增加。但由於某些數據我無法按照他們的需要進行分組。
期望的結果是:
1 -3 123
1 -2 234
1 -1 345
1 3 456
2 -4 678
2 -2 789
2 1 890
3 -5 246
3 10 357
也是其長期工作的查詢,所以我不想做雙選。是否有可能在一個選擇?
對不起,我忘了提0.編輯畝問題。與您的解決方案,它不會帶來積極的每個ID。比較時可能需要檢查ID? – Rapunzo 2014-11-06 09:40:21
@Rununzo - 更新爲'id'。只需將其添加到「PARTITION」子句即可。 – 2014-11-06 09:41:44
非常感謝。成功了! – Rapunzo 2014-11-06 09:42:41