根据SQL Server中的列值选择记录

时间:2018-07-11 17:17:23

标签: select sql-server-2012

我的表包含两列,这些列的输入记录如下。

样本输入记录

Column1         Column2
-----------------------
A                B
A                C
A                D
R                B 
R                D
S                E

在上面的记录中,如果我给出条件Column2 ='D',它将显示在输出记录下方。

输出记录

Column1         Column2
-----------------------
A                B
A                C
A                D
R                B 
R                D
逻辑:在示例输入记录中,Column2 ='D'包含两个记录。这两个记录包含colum1值,分别为'A'和'R'。所以我想显示包含'A'和'R'的记录'从输入记录中

如果在条件Column2 ='C'处给出条件,它将显示在输出记录下方。

输出记录

Column1         Column2
-----------------------
A                B
A                C
A                D

逻辑:在示例输入记录中,Column2 ='C'包含一个记录。该记录包含column1的值“ A”。所以我想显示输入记录中包含“ A”的记录

1 个答案:

答案 0 :(得分:1)

这将起作用:

CREATE TABLE #temp
    (
        Column1 CHAR(1) ,
        Column2 CHAR(2)
    );


INSERT INTO #temp ( Column1 ,
                    Column2 )
VALUES ( 'A', 'B' ) ,
       ( 'A', 'C' ) ,
       ( 'A', 'D' ) ,
       ( 'R', 'B' ) ,
       ( 'R', 'D' ) ,
       ( 'S', 'E' );

SELECT *
FROM   #temp
WHERE  Column1 IN (   SELECT Column1
                      FROM   #temp
                      WHERE  Column2 = 'D' );


DROP TABLE #temp;

结果:

+---------+---------+
| Column1 | Column2 |
+---------+---------+
| A       | B       |
| A       | C       |
| A       | D       |
| R       | B       |
| R       | D       |
+---------+---------+