我无法将 sql_variant 字段与 IS NULL 运算符进行比较

发布于 2024-09-25 11:25:38 字数 400 浏览 1 评论 0原文

我的意思是,当列类型 sql_variant 时,我无法查询空值

例如 docsdate 表如下所示:

ValID DocID     Value  <--sql variant column)

 1. 488 146      30.10.2007
 2. 740 190      31.03.2008
 3. 570 161      31.10.2008 
 4. 242 103      NULL
 5. 248 104      NULL

当查询 select * from docsdate where value is null< /代码> 没有返回

任何行 知道吗?

I mean I can't query null values when column type sql_variant

For example docsdate table look like this:

ValID DocID     Value  <--sql variant column)

 1. 488 146      30.10.2007
 2. 740 190      31.03.2008
 3. 570 161      31.10.2008 
 4. 242 103      NULL
 5. 248 104      NULL

When query like select * from docsdate where value is null
no rows returned

Any idea?

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

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

发布评论

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

评论(1

烟雨扶苏 2024-10-02 11:25:38

这对我来说效果很好。您确定您的 NULL 值实际上是正确的 NULL,而不是包含文本 NULL 的字符串吗?它们在 SSMS 中显示为黄色背景吗?

create table #docsdate 
(
ValID int,
DocID int,
value sql_variant
)

INSERT INTO #docsdate
SELECT 488,146,'30.10.2007' UNION ALL
SELECT 740,190,'31.03.2008' UNION ALL
SELECT 570,161,'31.10.2008' UNION ALL 
SELECT 242,103,NULL UNION ALL
SELECT 248,104,NULL

SELECT * FROM #docsdate
WHERE value IS NULL

DROP TABLE #docsdate

This works fine for me. Are you sure your NULL values are actually proper NULLs and not strings containing the text NULL? Do they show up with a yellow background in SSMS?

create table #docsdate 
(
ValID int,
DocID int,
value sql_variant
)

INSERT INTO #docsdate
SELECT 488,146,'30.10.2007' UNION ALL
SELECT 740,190,'31.03.2008' UNION ALL
SELECT 570,161,'31.10.2008' UNION ALL 
SELECT 242,103,NULL UNION ALL
SELECT 248,104,NULL

SELECT * FROM #docsdate
WHERE value IS NULL

DROP TABLE #docsdate
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文