0

私はこの手順を持っていて、指定されたパラメータがnullでない行を選択するように変更したい

Create PROC ViewclassCourses
(
@pClassID int = null,
@pcourseID int = null,
@pMinMark decimal(5,2)=null,
@pMaxMark decimal(5,2)=null
)
as

select ClassID,CourseID,minmark,maxmark from ClassCourses
Go

たとえば、 ViewclassCourses @pclassID=1,@pMaxMark=100 と入力すると、次のように機能します

select ClassID,CourseID,minmark,maxmark from ClassCourses where @pclassID=1 and    @pMaxMark=100'
4

2 に答える 2

0

パラメータがnullでない場合にのみパラメータを使用したいと思いますか?私の仕事では、通常、次のようにします。

 Create PROC ViewclassCourses
    (
    @pClassID int = null,
    @pcourseID int = null,
    @pMinMark decimal(5,2)=null,
    @pMaxMark decimal(5,2)=null
    )
    as

    select ClassID,CourseID,minmark,maxmark from ClassCourses
    where ClassId = coalesce(@pClassID, ClassId)
    and CourseID = coalesce(@pcourseID , CourseID)
    and minmark = coalesce(@pMinMark , minmark)
    and maxmark = coalesce(@pMaxMark , maxmark)
    Go

と書くこともできますwhere @pClassId is null or ClassId = @pClassIdCOALESCE「パターン」を採用しました。

于 2013-10-01T13:46:39.353 に答える