SQL用word替换空SQL SELECT

时间:2012-08-08 12:59:38

标签: sql case

我试图解决以下问题:

我想做一个选择,当结果为空时,它应该替换为'空' 否则结果应该在那里。 这是我的尝试:

select case (count*) 
       when 0 then 'empty'
       ELSE
       THEVALUEOFTHECOLUM
END AS RESULT

from Database.table where CarID = 12;

感谢您的每一条评论。

4 个答案:

答案 0 :(得分:2)

这应该可行,但您可能必须根据所使用的数据库将第二次出现的COUNT(*)转换为VARCHAR:

SELECT
  CASE WHEN COUNT(*) = 0
    THEN 'empty'
    ELSE COUNT(*) -- CONVERT, TO_CHAR, ...
  END AS result
FROM Database.table where CarID = 12;

答案 1 :(得分:0)

SELECT 
CASE
    WHEN Q.countvalue = 0 THEN 'Empty' 
    ELSE CONVERT(NVARCHAR(10), Q.countvalue) 
END AS RESULT
FROM 
    (
    SELECT COUNT(*) AS countvalue
    FROM   Database.table WHERE CarID = 12
    ) AS Q

答案 2 :(得分:0)

这对我来说很麻烦,但它会返回列数据。 这不是一个查询,但它仍然是明确的。

declare @tmp table (id int)
declare @cnt int
insert into @tmp select col from table
select @cnt = count(*) from @tmp
if(@cnt = 0)
begin
    select 'empty'
end
else
begin
    select * from @tmp
end

答案 3 :(得分:0)

是否可以使用一个查询对其进行编码? 如果没有结果 - >没有找到结果 其他   显示所有结果,而不仅仅是一个

declare @tmp table (id int) 
declare @cnt int 
insert into @tmp select col from table 
select @cnt = count(*) from @tmp 
if(@cnt = 0) 
begin     
select 'empty' 
end 
else 
begin     
select * from @tmp 
end