【问题标题】:Selecting Records based on column value in SQL Server在 SQL Server 中根据列值选择记录
【发布时间】:2018-07-11 17:17:22
【问题描述】:

我的表包含两列具有以下输入记录。

示例输入记录

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

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

输出记录

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

逻辑:在示例输入记录中 Column2='D' 包含两条记录。这两条记录包含列 1 值作为 'A' 和 'R'。所以我想显示包含 'A' 和 'R' 的记录' 来自输入记录

假设如果给出 where 条件 Column2='C' i 它将显示在输出记录下方。

输出记录

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

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

【问题讨论】:

标签: select sql-server-2012


【解决方案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       |
+---------+---------+

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-03
    • 1970-01-01
    相关资源
    最近更新 更多