sql server文字列非空判定の実現方法


 
CREATE function getcolor
(@ varchar(50),@ varchar(50))
returns varchar(200)
as
begin
declare @sql varchar(2000);set @sql=''
--distinct
select @sql=@sql+ +',' from (
select distinct from yourtablename where
=@ and =@ and is not null
) aa
set @sql=substring(@sql,1,len(@sql)-1)
return @sql
end
set@sql=substring(@sql,1,len(@sql)-1)という文は時々間違えます。なぜならば@sqlはsubstringを使う時、空の文字列になります。関数の中で、substringの前に@sqlが空かどうかを判断しますか?if@sql is not null and len(@sql)==1 set@sql=substring(@sql、1、len(@sql)-1)else…
 

if(@sql is not null)
set @sql=substring(@sql,1,len(@sql)-1)
return @sql
 
if isnull(@sql,'')<>''
set @sql=substring(@sql,1,len(@sql)-1)
「select*from db where s s is not null」これは全ての空欄の内容を選択する「select*from db where is null」です。これは全ての空欄を選択する内容です。SQL判定値を空にする場合、一つの値を黙認します。Yse_.CommdityKD,0)FROM[Yu_]Records)