以下为标准来选择行:SQL - SELECT行有条件
- 对于相同SYSID,P2将比P1是优选的。
我想出了这个逻辑
DECLARE @Products table
(
Id int,
SysId varchar(100)
);
INSERT INTO @Products
SELECT Id, SysId FROM ProductMain
WHERE ProductCode = 'P2'
INSERT INTO @Products
SELECT Id, SysId FROM ProductMain WHERE ProductCode = 'P1'
AND SysId NOT IN (SELECT SysId FROM @subscription)
--Result
SELECT Id,SysId FROM @Products
样本数据
Id SysId ProductCode
1 121 P1
2 121 P2
3 122 P1
4 123 P2
5 124 P1
6 124 P2
所需的输出
Id SysId
2 121
3 122
4 123
6 124
我知道重新应该是一个更好的逻辑。请帮忙。提前致谢。
输入和最终输出 – mohan111
只需添加输入的任何样本数据和期望的输出 – Ganesha
我只是做两个查询一个UNION - 一个地方P2存在,一个在它不(并使用连接而不是你的子查询)。根据数据,它可能是最快的 –