困住了的一道T-SQL 语句,欢迎各界高手来飘过留答!该怎么解决

困住了的一道T-SQL 语句,欢迎各界高手来飘过留答!
create proc Orders
  @ship varchar(100),
  @company varchar(100),
  @trade varchar(100), 
  @starttime datetime ,
  @endtime datetime
as
 
  (???????)

go
 (这个表的查询是:select *  from  All_Orders)

  @ship 、 @company 、@trade 、 @starttime 、  @endtime 
  这五个变量是传递过来的  查询条件
  5个查询条件 是交互的, 也就是说 不知道用户传递过来的是哪个条件,
  怎么来进行查询呢?

   请求 各路漂浮的同事们~

  
------解决方案--------------------
试试:
if @starttime is null
  select *  from  All_orders where ship=isnull(@ship,ship)
  and company=isnull(@company,company) and trade=isnull(@trade,trade)
 if @starttime is null
  select *  from  All_orders where ship=isnull(@ship,ship)
  and company=isnull(@company,company) and trade=isnull(@trade,trade) and orders_datetime
  between  @starttime and @endtime

看上去没啥问题啊