我试图解决以下问题:SQL更换空SQL SELECT与字
我想作一个选择,当结果是空的,应该与“空” 否则结果被替换应该在那里。 这是我的尝试:
select case (count*)
when 0 then 'empty'
ELSE
THEVALUEOFTHECOLUM
END AS RESULT
from Database.table where CarID = 12;
感谢您的每一个评论。
我试图解决以下问题:SQL更换空SQL SELECT与字
我想作一个选择,当结果是空的,应该与“空” 否则结果被替换应该在那里。 这是我的尝试:
select case (count*)
when 0 then 'empty'
ELSE
THEVALUEOFTHECOLUM
END AS RESULT
from Database.table where CarID = 12;
感谢您的每一个评论。
这应该工作,但您可能不得不根据所使用的数据库来第二次出现转换的COUNT(*)
到VARCHAR:
SELECT
CASE WHEN COUNT(*) = 0
THEN 'empty'
ELSE COUNT(*) -- CONVERT, TO_CHAR, ...
END AS result
FROM Database.table where CarID = 12;
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
这种感觉哈克给我,但它会返回列数据。 这不是一个查询,但它仍然是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-16 08:38:49
@John我不明白这个问题。你想要什么列? – Chris 2012-08-16 13:44:46
是否可以使用一个查询进行编码? 如果没有结果 - “没有结果发现 其他 显示所有结果,而不是只有一个
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
http://stackoverflow.com/questions/7687717/sql-2005-can-i-use-keyword -like-in-case-statement – Paul 2012-08-08 13:07:22