比较除了所选参数之外的所有参数?

时间:2015-06-02 19:30:07

标签: sql sql-server sql-server-2008 tsql

我在SQL Server 2008中工作。我创建了一个存储过程,它从临时表中传递了多个值。以下是如何填充临时表的示例代码:

DECLARE @OwnerKey varchar(75) = '2,3,7,9,14,18,23,26,28'

/* ***** Temp Table ***** */
IF OBJECT_ID('Tempdb..#OwnerTable','U') IS NOT NULL
    DROP TABLE #OwnerTable
CREATE TABLE #OwnerTable (Owner varchar(10))
INSERT INTO #OwnerTable
SELECT value from TTT.ParseList(@Ownerkey,',')
/* ***** Temp Table ***** */

后来我加入了这个表,以便引入多个所有者密钥:

SELECT T.Product, O.ownerid
FROM Table AS T
JOIN #OwnerTable AS O
    ON O.Owner = T.Owner

我遇到的问题是这个存储过程正在报告中使用,我需要排除被选择的参数,因为它应该与其他键进行比较。这个问题可能很复杂,我会尽力回答问题。

基本上,如果用户选择参数2,我们希望将结果与除键号2之外的所有其他键进行比较,我需要在ssms中执行此操作。我试过Merge when not matched,但无济于事。抱歉,这是一个很长的问题,是sql的新手。

1 个答案:

答案 0 :(得分:2)

您可能想要这样做:

SELECT T.Product
      ,O.ownerid
FROM Table AS T
LEFT JOIN #OwnerTable AS O
    ON O.Owner = T.Owner
WHERE O.ownerid IS NULL;

这样你就可以排除"匹配的记录。