Question

Ok so I have a large query that has 4 parameters in it..

CREATE FUNCTION [dbo].[Doorsdoorsdoors]
(
@start datetime, 
@end datetime, 
@day varchar,
@doornumber int
)
RETURNS TABLE AS RETURN (

SELECT bla bla bla....

What I want to do is set their default parameters to all (*)

So when I use the select statement I can use default so it returns all results like below:

SELECT * FROM Doorsdoorsdoors (default,default,default,default)

I would imagine it is something like this:

CREATE FUNCTION [dbo].[Doorsdoorsdoors]
(
@start datetime LIKE '%', 
@end datetime LIKE '%', 
@day varchar LIKE '%',
@doornumber int LIKE '%'
)
RETURNS TABLE AS RETURN (

SELECT bla bla bla....

Or possibly done in the SELECT * FROM Doorsdoorsdoors (default,default,default,default) with something like this..

SELECT * FROM Doorsdoorsdoors ('%','%','%','%')

Was it helpful?

Solution

CREATE FUNCTION [dbo].[Doorsdoorsdoors]
    (
    @start datetime = NULL --default value, 
    @end datetime = NULL --default value, 
    @day varchar =NULL --default value,
    @doornumber int = NULL --default value
    )
    RETURNS TABLE AS RETURN (

select * from Doorsdoorsdoors where ((@start is NULL) OR (start=@start))
AND ((@end is NULL) OR (start=@end)) AND....
)

Call procedure with all defaults:

SELECT * FROM Doorsdoorsdoors (default,default,default,default)

OTHER TIPS

Try the following

CREATE FUNCTION [dbo].[Doorsdoorsdoors]
      (
      @start datetime = NULL,
      @end datetime = NULL, 
      @day varchar = NULL,
      @doornumber int = NULL
      )
      RETURNS TABLE AS RETURN (

      SELECT bla bla bla....

      WHERE ((@start is NULL) OR (default=@start))
      AND ((@end is NULL) OR (default=@end))
      AND ((@day is NULL) OR (default=@day))
      AND ((@doornumber is NULL) OR (default=@doornumber))

Then try calling it with

      SELECT * FROM Doorsdoorsdoors (default,default,default,default)

or

      SELECT * FROM Doorsdoorsdoors (default,default,default,'123')
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top