私のクエリは「exists」関数をフィルターとして使用し、その中にスカラー値関数があります。スカラー値関数には、cte と "(select top 1 1)" が含まれます。私が存在する場合、それはまったくフィルタリングされません。むしろ、「where 1=(svf)」を使用するとうまくいくようです。存在するクエリで何かを見逃したり、間違ったりしましたか?
SELECT * FROM TBL1
WHERE EXISTS (SELECT SVF(1,2))
--where SVF is my scalar valued from which returns bit and looks like as shown below.
CREATE FUNCTION SVF
(
@x int,
@y int
)
RETURNS bit
AS
BEGIN
declare @result bit
;WITH T1
AS (
SELECT * from tbl2
)
SELECT @result= (select top 1 1
FROM t1
)
return isnull(@result,0)
END
GO
--the following query works
SELECT * FROM TBL1
WHERE 1=(SELECT SVF(1,2))