以下爲標準來選擇行: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存在,一個在它不(並使用連接而不是你的子查詢)。根據數據,它可能是最快的 –