我有一张表,该表描述了特定记录类型的份额。为共享项目创建了2条记录,结果如下所示:
|--------------|------------|
| Shared From | Shared To |
|--------------|------------|
| Record 1 | Record 2 |
|--------------|------------|
| Record 2 | Record 1 |
|--------------|------------|
是否可以检索单个共享记录?这意味着从上表中我只会得到一条记录(没有区别)
|--------------|------------|
| Shared From | Shared To |
|--------------|------------|
| Record 1 | Record 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