0

我正在尝试解决以下问题:

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

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

from Database.table where CarID = 12;

感谢您的每一条评论。

4

4 回答 4

2

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

SELECT
  CASE WHEN COUNT(*) = 0
    THEN 'empty'
    ELSE COUNT(*) -- CONVERT, TO_CHAR, ...
  END AS result
FROM Database.table where CarID = 12;
于 2012-08-08T13:01:47.173 回答
0

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

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 
于 2012-08-16T08:46:53.080 回答
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
于 2012-08-08T13:09:23.873 回答
0

这对我来说感觉很奇怪,但它会返回列数据。这不是一个查询,但它仍然是 setwise。

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
于 2012-08-08T13:11:58.633 回答