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。