Sql 从列值互换使用的行中获取数据

Sql 从列值互换使用的行中获取数据,sql,sql-server,Sql,Sql Server,我在图片中得到的数据是正确的。下面是链接。请查看下面的查询 SELECT * FROM dbo.DrugInteraction WHERE Drug='clarithromycin' AND DrugInteraction='afatinib' SELECT * FROM dbo.DrugInteraction WHERE Drug='afatinib' AND DrugInteraction='clarithromycin' 如果仔细观察,你会发现,Drug和Druginteraction的

我在图片中得到的数据是正确的。下面是链接。请查看下面的查询

SELECT * FROM dbo.DrugInteraction WHERE Drug='clarithromycin' AND DrugInteraction='afatinib'
SELECT * FROM dbo.DrugInteraction WHERE Drug='afatinib' AND DrugInteraction='clarithromycin'
如果仔细观察,你会发现,Drug和Druginteraction的列值可以互换使用,我有数千条这样的记录,但描述仍然相同

所以,我想要的最后一个输入是描述字段。有人能帮我吗


您可以使用以下方法获得每对的第一个值:

select di.*
from dbo.DrugInteraction di
where drug < druginteraction
union all
select di.*
from dbo.DrugInteraction di
where drug > druginteraction and
      not exists (select 1
                  from dbo.DrugInteraction di2
                  where di2.drug = di.druginteraction and di2.druginteraction = di.drug
                 );

请用您正在使用的数据库标记您的问题。我还发现这个问题模棱两可。如果药物多次出现在您的桌子上怎么办?如果相互作用的描述不一样怎么办?我使用的是SQL SERVER数据库,它可能出现两次,但与不同的药物相互作用,并且描述保持不变。嗨,戈登,它有效。你能建议我如何在linq中这样做,这将非常有帮助吗?@sunil。我不使用linq。此问题仅标记为sql。我建议您提出另一个问题,包括此查询和对此问题的引用,并将其标记为linq。