读书人

按条件查询,该怎么处理

发布时间: 2012-10-23 12:12:22 作者: rapoo

按条件查询

SQL code
select JO026,* FROM     [dbo].[APSJOB]where    JO015 IN (SELECT RE002 FROM APSRES WHERE RE001 = 'liyu')


我想实现:
JO026 = '0'加JO015 IN (SELECT RE002 FROM APSRES WHERE RE001 = 'liyu')条件限定
JO026 = '1'不加JO015 IN (SELECT RE002 FROM APSRES WHERE RE001 = 'liyu')条件限定

开始我想像下边这样写,显然思路和语法不对

SQL code
select *     FROM         [dbo].[APSJOB]whereJO015 IN CASE WHEN JO026 = '0' THEN (SELECT RE002 FROM APSRES WHERE RE001 = 'liyu')ELSE(SELECT DISTINCT RE002 FROM APSRES )END



[解决办法]
SQL code
select     case when JO015 IN (SELECT RE002 FROM APSRES WHERE RE001 = 'liyu') then '0'else '1' end as JO026,* from [dbo].[APSJOB]
[解决办法]
SQL code
select JO026,* FROM     [dbo].[APSJOB]where    (isnull(JO026,'0') = '0' and JO015 IN (SELECT RE002 FROM APSRES WHERE RE001 = 'liyu'))    or JO026='1' 

读书人网 >SQL Server

热点推荐