create function Xtest
(@d1 varchar(3)=null
,@d2 varchar(3)=null)
returns table
as
return
with code_list(code_pattern)
as
(
select x.code_pattern
from (values (@d1),(@d2)) as x(code_pattern)
where x.code_pattern is not null
),y
as
(
select substring(code,1,3) as code
from tblicd
where substring(code,1,3) in
(
select * from code_list
)
)
select * from y
それが完全に終了したときに意味をなす私の機能です。このクエリを実行しようとして、2 つのパラメーターを指定しないと失敗します。ストアド プロシージャと同じコードがあり、パラメーターを 1 つだけ入力すると、正常に機能し、2 番目のパラメーターに null が割り当てられます。null
ストアド プロシージャでできるように、パラメーターが指定されていない場合にパラメーター値として渡す方法はありますか?
関数はコンパイルされます。