将null和空字符串组合在一起

Gee*_*thu 3 string null group-by sql-server-2008

我想将列中的NULL和空字段组合在一起.

我尝试了以下脚本

SELECT
  CASE
    WHEN test IS NULL OR test= ''
    THEN ''
    ELSE test
  END as 'test' 
from firm 
group by test
Run Code Online (Sandbox Code Playgroud)

如果我们在列测试中使用值NULL,'',Test1,Test2,则上面的查询将创建两个具有NULL值的组,如下所示.

1 NULL

2 NULL

3 Test1

4 Test2
Run Code Online (Sandbox Code Playgroud)

我想要的是如下所示的分组.

1 NULL or ''

2 Test1

3 Test2
Run Code Online (Sandbox Code Playgroud)

Jad*_*ade 7

试试这个希望这对你有帮助

SELECT
  CASE
    WHEN test IS NULL OR test= ''
    THEN ''
    ELSE test
  END as 'test' 
from firm 
group by CASE WHEN test IS NULL OR test = '' THEN '' ELSE test END
Run Code Online (Sandbox Code Playgroud)

要么

SELECT
  CASE
    WHEN test IS NULL OR test= ''
    THEN ''
    ELSE test
  END as 'test' 
from firm 
group by isnull(test, '')
Run Code Online (Sandbox Code Playgroud)


Boh*_*ian 5

您的CASE正在重塑COALESCE:

SELECT
  COALESCE(test, '') as test
from firm 
group by COALESCE(test, '')
Run Code Online (Sandbox Code Playgroud)

或者干脆:

SELECT DISTINCT
  COALESCE(test, '') as test
from firm 
Run Code Online (Sandbox Code Playgroud)