Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Can I Do Dynamic Query Construction in SQL Server SP
Message
 
 
To
14/10/2009 15:36:35
Bill Drew
Independent Consultant
Chicago, Illinois, United States
General information
Forum:
Visual FoxPro
Category:
Client/server
Miscellaneous
Thread ID:
01428769
Message ID:
01429415
Views:
30
>Thanks so much for the link.
>
>It was exactly what I needed.
>If anyone else needs a way to do dynamic queries, here is what I came up with.
>
>
>ALTER PROCEDURE [dbo].[sp_test2]
>(
>@LastSearch VARCHAR(50) = NULL,
>@FirstSearch VARCHAR (50) = NULL,
>@CASEID VARCHAR (10) = NULL,
>@OFFREF VARCHAR (23) = NULL,
>@MONTHDOB INT = NULL,
>@DAYDOB INT = NULL,
>@YEARDOB INT = NULL
>)
>AS
>      IF @CASEID IS NOT NULL
>            BEGIN
>                  SELECT PATIENTDOB,* FROM case4 WHERE (LCASEID LIKE (@CASEID+'%'))
>            END
>      ELSE
>            IF @OFFREF IS NOT NULL
>                  BEGIN
>                        SELECT * FROM case4 WHERE (OFFICIALREF LIKE (@OFFREF+'%'))
>                  END
>            ELSE
>                  BEGIN
>                        SELECT * FROM case4 WHERE
>                              (patientlast LIKE ISNULL(@LastSearch,PATIENTLAST)+'%') AND 
>                              (patientfirst LIKE ISNULL(@FirstSearch,PATIENTFirst)+'%' ) AND 
>                              (MONTH(PATIENTDOB) = ISNULL(@MONTHDOB,MONTH(PATIENTDOB))) AND
>                              (DAY(PATIENTDOB) = ISNULL(@DAYDOB,DAY(PATIENTDOB))) AND
>                              (YEAR(PATIENTDOB) = ISNULL(@YEARDOB,YEAR(PATIENTDOB)))
>                  end
>
Bill,

If you have NULLs in any of your fields this query will return different result than
                        SELECT * FROM case4 WHERE
                              (@LastSearch IS NULL OR patientlast LIKE @LastSearch+'%') AND
etc.
If it's not broken, fix it until it is.


My Blog
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform