SQL-仅检索相关记录的一条记录

时间:2020-04-22 07:11:12

标签: sql tsql

我有一张表,该表描述了特定记录类型的份额。为共享项目创建了2条记录,结果如下所示:

|--------------|------------|
|  Shared From | Shared To  |
|--------------|------------|
|   Record 1   |  Record 2  |
|--------------|------------|
|   Record 2   |  Record 1  |
|--------------|------------|

是否可以检索单个共享记录?这意味着从上表中我只会得到一条记录(没有区别)

|--------------|------------|
|  Shared From | Shared To  |
|--------------|------------|
|   Record 1   |  Record 2  |

由于组合不同,因此无法在两列上都使用

2 个答案:

答案 0 :(得分:2)

使用case表达式在第一列中返回较小的值,在第二列中返回较大的值。执行SELECT DISTINCT删除重复项。

select distinct case when SharedFrom < SharedTo then SharedFrom else SharedTo end,
                case when SharedFrom > SharedTo then SharedFrom else SharedTo end
from tablename

注意:可能会切换列以使用唯一组合。 (如果col1> col2。)

答案 1 :(得分:0)

如果我对您的理解正确,那么您希望从表中获得一行。 要获得表中前N行,可以使用TOP('N'),例如:

SELECT TOP(1) share_column FROM shares_table
相关问题
最新问题