是否可以替换SQL查询中的值?

Ant*_*ine 5 sql t-sql sql-server

我想知道在SQL查询中是否有可能用其他东西替换某些值,或者如果我需要在后处理中执行此操作.

让我解释.我有这张桌子:

|username| accepted |
|--------|----------|
|  toto  |   NULL   |
|--------|----------|
|  foo   |    0     |
|--------|----------|
|  Rick  |    1     |
|--------|----------|
|  bar   |    1     |
|--------|----------|
Run Code Online (Sandbox Code Playgroud)

我想知道accepted(可空位)每个值的行数.我正在运行此查询:

SELECT [accepted], count(*) FROM my_table GROUP BY [accepted]
Run Code Online (Sandbox Code Playgroud)

哪个应该返回:

NULL   1  
false  1  
true   2
Run Code Online (Sandbox Code Playgroud)

有没有办法accepted用更有意义的标签替换值?理想情况下,我希望有类似的东西:

not_available 1
not_accepted  1
accepted      2
Run Code Online (Sandbox Code Playgroud)

SQL Server 2008 R2是否可行?

谢谢.

nik*_*trs 11

如果您有几个值:

SELECT CASE [accepted] 
WHEN 0 THEN 'not_accepted' 
WHEN 1 THEN 'accepted '
ELSE 'not_available' END AS accepted
, count(*) 
FROM my_table 
GROUP BY CASE [accepted] 
WHEN 0 THEN 'not_accepted' 
WHEN 1 THEN 'accepted '
ELSE 'not_available' END
Run Code Online (Sandbox Code Playgroud)