我試圖解決以下問題: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