我试图解决以下问题:
我想做一个选择,当结果为空时,它应该替换为'空' 否则结果应该在那里。 这是我的尝试:
select case (count*)
when 0 then 'empty'
ELSE
THEVALUEOFTHECOLUM
END AS RESULT
from Database.table where CarID = 12;
感谢您的每一条评论。
答案 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