2012-09-07 119 views
0

考慮下面的代碼:選擇最小值與ID

DECLARE @table AS TABLE 
    (
    id INT IDENTITY , 
    DATA VARCHAR(100) , 
    code CHAR(1) 
) 

INSERT INTO @table 
     (data, code) 
VALUES ('xasdf', 'a'), 
     ('aasdf', 'a'), 
     ('basdf', 'a'), 
     ('casdf', 'b'), 
     ('Casdf', 'c'), 
     (NULL, NULL) 

我需要得到由代碼分組最小數據行。我可以做到這一點沒有嵌套查詢?

基本上,我想是這樣的:

SELECT TOP (1) 
     id , 
     MIN(data) 
FROM @table 
GROUP BY code 

回答

0

簡短回答是否。這不可能。

2

SELECT *(選擇 ROW_NUMBER)OVER(PARTITION BY代碼ORDER BY代碼DESC,數據DESC)AS行, ID,DATA(,代碼 FROM @table)T其中T.Row = 1

+0

它的工作原理,但你已經使用了嵌套查詢。 –