1. ホーム
  2. sql-server-2005

[解決済み] Sqlサーバーの文字列がNULLまたは空であるかどうかを確認する方法

2022-04-05 18:37:32

質問

データがあるかどうかチェックしたいが、NULLや空の場合は無視したい。現在、クエリーは以下の通りです。

Select              
Coalesce(listing.OfferText, company.OfferText, '') As Offer_Text,         
from tbl_directorylisting listing  
 Inner Join tbl_companymaster company            
  On listing.company_id= company.company_id      

しかし、私は company.OfferTex もし listing.Offertext が空文字列の場合も、NULLの場合も同じです。

最もパフォーマンスの高い解決策は?

どのように解決するのか?

私はこう考えています。

SELECT 
  ISNULL(NULLIF(listing.Offer_Text, ''), company.Offer_Text) AS Offer_Text
FROM ...

が最もエレガントな解決策です。

そして、疑似コードで少し分解すると

// a) NULLIF:
if (listing.Offer_Text == '')
  temp := null;
else
  temp := listing.Offer_Text; // may now be null or non-null, but not ''
// b) ISNULL:
if (temp is null)
  result := true;
else
  result := false;