在 T-Sql 的条件中使用 Null 变量

发布于 2024-11-30 04:00:13 字数 174 浏览 1 评论 0原文

有没有一种方法可以按以下方式使用变量?

DECLARE @ID int;
SET @ID = NULL;
SELECT *
FROM Market market
WHERE market.ID IS @ID

或者还有其他方法可以做到这一点吗?

谢谢。

Is there a way to use a variable in the following manner?

DECLARE @ID int;
SET @ID = NULL;
SELECT *
FROM Market market
WHERE market.ID IS @ID

Or is there another way to do this?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

空心空情空意 2024-12-07 04:00:13

您需要这样做

SELECT *
FROM Market market
WHERE market.ID = @ID OR (@ID IS NULL AND market.ID IS NULL)

只是为了完整性,目前仍然可以这样做

SET ANSI_NULLS OFF

SELECT *
FROM Market market
WHERE market.ID = @ID

,但您不应该这样做。此选项已弃用。 相当有趣的相关博客文章

You need to do

SELECT *
FROM Market market
WHERE market.ID = @ID OR (@ID IS NULL AND market.ID IS NULL)

Just for completeness at the moment it is still possible to do

SET ANSI_NULLS OFF

SELECT *
FROM Market market
WHERE market.ID = @ID

but you shouldn't. This option is deprecated. Quite an interesting related blog post

兲鉂ぱ嘚淚 2024-12-07 04:00:13

您尝试将 null 粘贴到变量中而不是仅仅执行以下操作是否有特殊原因:

SELECT *
FROM Market market
WHERE market.ID IS NULL

Is there a particular reason that you are trying to stick null into a variable rather than just doing:

SELECT *
FROM Market market
WHERE market.ID IS NULL
晚雾 2024-12-07 04:00:13

如果您只想确定 market.ID 是否为 null,您可以这样做

SELECT *
FROM Market market
WHERE market.ID IS NULL

如果您正在测试 market.ID 是否为 null 或其他值,请尝试此操作

SELECT *
FROM Market market
WHERE market.ID IS NULL
  OR market.ID = @ID

If you just want to determine if market.ID is null, you would do this

SELECT *
FROM Market market
WHERE market.ID IS NULL

If you're testing to see if market.ID is null or some other value then try this

SELECT *
FROM Market market
WHERE market.ID IS NULL
  OR market.ID = @ID
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文