gpt4 book ai didi

sql - 获取表中不存在的值?

转载 作者:行者123 更新时间:2023-12-04 16:50:00 28 4
gpt4 key购买 nike

我有表 IteamMaster 和如下查询,

 Select ItemID from ItemMaster 
Where ItemID IN(1,2,...,100)

此查询返回表中现在可用的所有值,我想要的是查询应该返回表中不存在的 itemID,假设我的表有数据为

  ItemId        ItemName
1 x
3 y
4 z
10 a

然后它必须返回所有项目 ID,除了 1、3、4、10 来自一组 IN() 条件值?如何获得该值(value)任何帮助都会很棒?我的值是动态生成并传递给查询的查询也是动态生成的

最佳答案

您无法凭空变出数值。无论您从 FROM 选择什么,都必须包含您想要的值。使用系统表 master..spt_value 您可以生成一长串值,并检查其中的数字,但不在您的表中...

;With Numbers as (
select ROW_NUMBER() OVER (ORDER BY number) as n
from master..spt_values
)

SELECT
*
FROM
Numbers
LEFT JOIN
yourTable
ON Numbers.n = yourTable.ItemId
WHERE
Numbers.n IN (1,2,...,100)
AND yourTable.ItemID IS NULL

或者...

;With Numbers as (
select ROW_NUMBER() OVER (ORDER BY number) as n
from master..spt_values
)

SELECT
*
FROM
Numbers
WHERE
Numbers.n IN (1,2,...,100)
AND NOT EXISTS (SELECT * FROM yourTable WHERE ItemID = Numbers.n)

创建初始数字列表的方法有数百种。但是必须创建它。在您拥有可以存在的数字列表之前,您无法选择当前存在的数字。

关于sql - 获取表中不存在的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20493320/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com