-2

データを選択してフィルタリングするストアドプロシージャがあります。例えば ​​:

select CONVERT(nvarchar,[Date],120) , [FirstName] , [LastName]
FROM myDB
WHERE  (@Date IS NULL OR @Date = '' OR [Date] = @Date)
       (@FirstName IS NULL OR @FirstName  = '' OR [FirstName] = @FirstName)
       (@LastName IS NULL OR @LastName  = '' OR [LastName] = @LastName)

FirstNameまたは/およびLastNameでフィルタリングすると機能しますが、データでフィルタリングしたい場合は機能しません。おそらく変換の問題があると思いますか?私は次のように実行します:

exec myProc '2013-02-03','',''
4

1 に答える 1

3

これはあなたに役立つ可能性があります-

SELECT 
      CONVERT(NVARCHAR,[Date],120) 
    , [FirstName] 
    , [LastName]
FROM myDB
WHERE ISNULL(@Date, [Date]) = [Date] --<--
    AND (ISNULL(@FirstName, '') = '' OR [FirstName] = @FirstName) 
    AND (ISNULL(@LastName, '') = '' OR [LastName] = @LastName)
于 2013-06-13T11:10:12.187 に答える