我的表包含两列,这些列的输入记录如下。
样本输入记录
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”的记录
答案 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 |
+---------+---------+