bugfix> sql > 投稿

SQL Serverデータベースを使用していますが、テーブルの列にデフォルト値を設定したい

SELECT
  COUNT(DISTINCT CASE WHEN id = '5' THEN sid ELSE '0' END) AS 'total'
FROM records

このクエリが何も返さない場合、デフォルト値を0に設定します。

回答 1 件
  • このクエリ:

    SELECT COUNT(DISTINCT CASE WHEN id = 5 THEN sid END) As total
    FROM records
    
    

    常に1行を常に返します。値は 0 になります  条件に一致する行がない場合。 COUNT()   NULL を返しません ; 0 を返します 。

    id  おそらく数字なので、一重引用符を削除しました。ザ・ ELSE  句は意味をなさない。 id <> 5 のときに値を無視する方が理にかなっていると思います 。

    この特定のクエリは、おそらく次のように記述するとよいでしょう。

    SELECT COUNT(DISTINCT sid) As total
    FROM records
    WHERE id = 5;
    
    

あなたの答え