2013-07-31 73 views
-1

我需要帮助来解决这个问题。如何在Sql Server中使用multicondition来获得多结果

希望有人能给我建议。

对于一个样品,我已经有了喜欢的数据:

      PROCLIB.MARCH        1 
          First 10 Rows Only 

    Flight  Date Depart Orig Dest  Miles Boarded Capacity 
    ----------------------------------------------------------------- 
    114  01MAR94 7:10 LGA LAX  2475  172  210 
    202  01MAR94 10:43 LGA ORD  740  151  210 
    219  01MAR94 9:31 LGA LON  3442  198  250 
    622  01MAR94 12:19 LGA FRA  3857  207  250 
    132  01MAR94 15:35 LGA YYZ  366  115  178 
    271  01MAR94 13:17 LGA PAR  3635  138  250 
    302  01MAR94 20:22 LGA WAS  229  105  180 
    114  02MAR94 7:10 LGA LAX  2475  119  210 
    202  02MAR94 10:43 LGA ORD  740  120  210 
    219  02MAR94 9:31 LGA LON  3442  147  250 

和我对( 'LAX,ORD'), 'LAX', 'LON', 'YYZ',(“PAR条件,LON,FRA'),'FRA'... AND ELSE

我应该如何处理这些数据,以便在SQL中显示报告条件?

参数,我做的

Dest like @dest -> (from table condition(('LAX, ORD'), 'LAX','LON',('PAR,LON,FRA'),'FRA',..etc)) +'%' 
And Date like @date + '%' 
And Depart like @depart + '%' 

如果让我选择'LAX'@dest,那么只有'LAX'将显示

如果让我选择'LAX,ORD'@dest,那么只有'LAX''ORD'将显示

请为此我需要帮助,建议和建议。

感谢

+0

您能提供一些样本结果吗? – Nithesh

+2

您还可以提供您写的示例查询吗? – Nilesh

+0

@Bobi Aria:使用动态SQL。 –

回答

0

如果您@dest值是“LAX,ORD”,一个查询,将解决您的解决方案是

select * 
from PROCLIB.MARCH 
where dest in ('LAX','ORD') 

进行参数,你需要它成为一个表。

Dest 
==== 
LAX 
ORD 

和查询变得

select *  
from PROCLIB.MARCH 
where dest in (select Dest from @DestTable) 

如果你想通过@dest作为字符串参数,那么你就需要以某种方式把它分解成一个表。搜索SQL拆分功能将提供许多选项。

如果您的查询封装在存储过程中,更好的方法是将值作为表值参数传递。请参阅http://blog.sqlauthority.com/2008/08/31/sql-server-table-valued-parameters-in-sql-server-2008/

相关问题