从sql中删除字符串

时间:2015-11-24 10:49:18

标签: sql sql-server sql-server-2008

请参阅以下数据..

表A

AID        NAME
1          A
2          B
3          C
4          D
5          E
6          F

表B

BID        AID        NAME

1          1          T1
2          1          T2
3          2          T3
4          2          T4
5          3          T5
6          4          T6
7          1          T7
8          1          T8
9          2          T9
10         2          T10
11         3          T11
12         4          T12

我正在使用此声明

SELECT 
    dbo.A.NAME AS ANAME, dbo.B.NAME AS BNAME
FROM   
    dbo.A 
LEFT OUTER JOIN
    dbo.B ON dbo.A.AID = dbo.B.AID

它返回了这些结果:

ANAME          BNAME
A           T1        
A           T2        
A           T7        
A           T8        
B           T3        
B           T4        
B           T9        
B           T10       
C           T5        
C           T11       
D           T6        
D           T12       
E           NULL
F           NULL

但我需要以下结果

ANAME       BNAME
A           T1        
            T2        
            T7        
            T8        
B           T3        
            T4        
            T9        
            T10       
C           T5        
            T11       
D           T6        
            T12       
E           NULL
F           NULL

如何从上面删除多余的名字?

3 个答案:

答案 0 :(得分:1)

我想如果在SQL中绝对需要这样做,可以做类似以下的事情,因为它是演示文稿。

get

答案 1 :(得分:1)

试试这个

SELECT  CASE WHEN ROW_NUMBER() OVER ( PARTITION BY A.NAME ORDER BY A.NAME ) = 1
             THEN A.NAME
             ELSE ''
        END AS ANAME ,
        dbo.B.NAME AS BNAME
FROM    dbo.A
        LEFT OUTER JOIN dbo.B ON dbo.A.AID = dbo.B.AID;

答案 2 :(得分:0)

您可以使用以下SQL查询来获得所需的输出:

chrome://flags/#extensions-on-chrome-urls