2013-04-29 52 views
0

我是新來的SQL服務器爲空,我有一個表如下重複的值在SQL Server

**Emp_name  | year | rank ** 
    emp1    2010  1 
    emp1    2011  2 
    emp1    2012  3 
    emp2    2012  1 
    emp2    2013  2 
    emp3    2009  3 
    emp2    2010  4 
    emp3    2011  5 

EMP_NAME列有重複值,我希望有一個查詢,將返回以下結果, 。

**Emp_name  | year | rank ** 
emp1    2010  1 
null (emp1)  2011  2 
null (emp1)  2012  3 
emp2    2012  1 
null (emp2)  2013  2 
emp3    2009  3 
null (emp2)  2010  4 
null (emp3)  2011  5 

僅從重複值的值(EMP_NAME欄應看到1,其餘爲空或爲空白區

+1

您的輸出結果不清晰,您能否更清楚一點? – AnandPhadke 2013-04-29 06:34:38

+0

我不認爲這是可能的。你會在哪裏使用這些數據?也許我們可以建議你可以做的代碼部分操作。 – 2013-04-29 06:35:09

+0

@AnandPhadke在emp3中有一個錯誤類型,我想。他希望得到emp_name只有等級爲1,否則爲空或空字符串,因爲我明白 – 2013-04-29 06:36:32

回答

0

試試這個:

CREATE TABLE Table1 
    (Emp_name varchar(4), year int, rank int) 
; 

INSERT INTO Table1 
    (Emp_name, year, rank) 
VALUES 
    ('emp1', 2010, 1), 
    ('emp1', 2011, 2), 
    ('emp1', 2012, 3), 
    ('emp2', 2012, 1), 
    ('emp2', 2013, 2), 
    ('emp3', 2009, 3), 
    ('emp2', 2010, 4), 
    ('emp3', 2011, 5) 
; 

select 
CASE WHEN rn=1 then EMP_NAME else null end EMP_NAME, 
year,rank 
from 
(
    select *,ROW_NUMBER() over (partition by emp_name order by (select 0)) as rn from Table1 
) a 
+0

thanx很多@AnandPhadke – abhid89 2013-04-29 12:00:04