私は次の問題を解決しようとしています:
選択したいのですが、結果が空の場合は「空」に置き換える必要があります。それ以外の場合は結果が表示されます。それが私の試みです:
select case (count*)
when 0 then 'empty'
ELSE
THEVALUEOFTHECOLUM
END AS RESULT
from Database.table where CarID = 12;
すべてのコメントをありがとう。
これは機能するはずですが、COUNT(*)
使用するデータベースによっては、の2番目のオカレンスを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
これは私にはハックな感じがしますが、列データを返します。これは1つのクエリではありませんが、それでも設定されています。
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
1つのクエリでコーディングすることは可能ですか?結果がない場合->結果が見つかりませんelse1つだけでなくすべての結果を表示します
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