我正在尝试获取DISTINCT和NOT NULL值,但这似乎不起作用:
SELECT DISTINCT ITEM
FROM TABLE
WHERE ITEM IS NOT NULL
这会返回DISTINCT值,但它也会返回NULL VALUES。
样品:
ITEM
a
a
b
b
c
c
NULL
输出:
a
b
c
NULL
答案 0 :(得分:3)
试试这个。 “IS NOT NULL”和“IS NULL”不适用于空值。如果列允许空白,则可以同时覆盖两者。
SELECT
DISTINCT item FROM table
WHERE
ISNULL(item,'') <> ''
答案 1 :(得分:2)
除非您的字符串 NULL而不是列中的a b c
,否则此语句将返回symbol
:
SELECT DISTINCT ITEM FROM TABLE WHERE ITEM IS NOT NULL
要测试一下,请尝试这些
--check for
SELECT DISTINCT ITEM FROM TABLE WHERE ITEM = 'NULL'
--modify original query
SELECT DISTINCT ITEM FROM TABLE WHERE NULLIF(ITEM, 'NULL') IS NOT NULL
答案 2 :(得分:1)
检查Item是否为Varchar类型,并在其中存储值“NULL”。如果是,那么请尝试下面给出的查询:
select distinct item from table where ISNULL(item,'')<>'' and item <> "NULL"