gpt4 book ai didi

带有可选参数和可能的空列的 SQL 查询

转载 作者:行者123 更新时间:2023-12-05 01:48:33 26 4
gpt4 key购买 nike

在包含空值的列上将可选的 sql 参数留空时,我很难返回我期望的所有结果。

假设您有一个包含以下内容的表(referredby 是可选的,因此可以为 NULL):

Customertable
ID CustomerName ReferredBy
1 Aaron Joe
2 Peter NULL
3 Steven Joe

假设我想使用一个可选的 SQL 参数查询 referredby 字段,如下所示:

declare @referredby as varchar(15)

select id, customername
from customertable<br>
where referredby = isnull(@referredby, referredby)

如果我将参数保留为空,这只会返回:
1 亚伦
3 史蒂文

如何使用可选参数返回所有 3 个结果?

最佳答案

试试这个:

select id, customername
from customertable
where (referredby = @referredby OR @referredby is null)

原因explained in this post ,在 sql server 中比较 null = null 返回 false(或未知)。和 null != null 一样。

如果您真的喜欢您的语法,我相信您可以通过将 ansi_Nulls 设置为关闭来使其工作:set ansi_nulls off

关于带有可选参数和可能的空列的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11092576/

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