0

私は次の問題を解決しようとしています:

選択したいのですが、結果が空の場合は「空」に置き換える必要があります。それ以外の場合は結果が表示されます。それが私の試みです:

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

from Database.table where CarID = 12;

すべてのコメントをありがとう。

4

4 に答える 4

2

これは機能するはずですが、COUNT(*)使用するデータベースによっては、の2番目のオカレンスを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
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

これは私にはハックな感じがしますが、列データを返します。これは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
于 2012-08-08T13:11:58.633 に答える
0

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 
于 2012-08-16T08:46:53.080 に答える