SQL:使用两个字段的值来交叉匹配列

时间:2016-10-03 20:54:58

标签: sql

以下是该方案,

表A

---------------------
ID    | Col 1     | Col 2  
---------------------
1     | 1         | 2      
---------------------
2     | 3         | 4           
---------------------
3     | 2         | 1             
---------------------
4     | 4         | 3           
---------------------

在第1栏中,有一些数据' 1'在第2栏中有一些数据' 2'。在同一个表中,还有另一行,这些值互换。如何使用SQL查询

获得如下输出
ID_1 | Col 1     | Col 2     |ID_2
-----------------------------------
1    | 1         | 2         |3
-----------------------------------
2    | 3         | 4         |4
-----------------------------------

我知道这个选项

SELECT a.ID, a.col1, a.col2
  FROM tableA a
 WHERE NOT EXISTS( SELECT 1
                     FROM tableA b
                    WHERE a.col1 = b.col2
                      AND a.col2 = b.col1
                      AND a.col1 > b.col1 );

但我不知道如何获得第二个ID

1 个答案:

答案 0 :(得分:1)

这就是你想要的吗?

col1

如果col2with tablea(id, col1, col2) as ( values(1, 1, 2), (2, 3, 4), (3, 2, 1), (4, 4, 3) ) select a.*, b.id from tableA a join tableA b on a.col1 = b.col2 and a.col2 = b.col1 and a.id < b.id; 中的值被反转,则每增加$body = Get-Content $file -encoding UTF8 | Out-String 一行将返回一行// Your plus-icon in your header bar <button (click)='toggleNew == true'> <ion-icon name='plus'></ion-icon> </button> // Your content <ion-content> <ion-list inset> <ion-item *ngFor="let item of todos" (click)="edit(item)"> {{item}} </ion-item> </ion-list> <ion-item *ngIf='toggleNew'> <ion-input [(ngModel)]='newItem' placeholder="Task .. "></ion-input> <button (click)='saveNew(newItem)'>Save</button> <button danger (click)='cancelNew()'>Cancel</button> </ion-item> </ion-content>

以下代码演示了这种方法:

// Initalial values.
newItem: string = "";
toggleNew: boolean = false;

// Saving function
saveNew( newItem: string ): void {
    this.todos.push(newItem);
    this.toggleNew = false;
    this.newItem = "";
}

// Cancel function
cancelNew(): void {
    this.toggleNew = false;
    this.newItem = "";
}

它完全返回您指定的内容。 Here是一个SQL小提琴。