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

时间:2010-10-02 06:38:18

标签: sql-server-2008 null sql-variant

我的意思是当列类型为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 没有返回行

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这对我来说很好。您确定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