当前位置: 代码迷 >> Sql Server >> 请教一下复合语句的修改
  详细解决方案

请教一下复合语句的修改

热度:35   发布时间:2016-04-24 10:30:51.0
请问一下复合语句的修改
原语句
select ct.name from 
(ch_flatmod as a left join ch_flat as b on a.HOUSE_ID_NEW=b.HOUSE_ID) 
left join ct_house_use ct on b.house_use=ct.code 
where 
ct.name is null or ct.name=""

现在,我要添加排除ch_flat中HOUSE_NUMBER(int类型)不等于9999的项目

我试着以下两个方式均不正确
select ct.name from 
(ch_flatmod as a left join ch_flat as b on a.HOUSE_ID_NEW=b.HOUSE_ID and b.HOUSE_NUMBER != 9999) 
left join ct_house_use ct on b.house_use=ct.code 
where 
ct.name is null or ct.name=""

select ct.name from 
(ch_flatmod as a left join ch_flat as b on a.HOUSE_ID_NEW=b.HOUSE_ID) 
left join ct_house_use ct on b.house_use=ct.code 
where 
ct.name is null or ct.name="" and b.HOUSE_NUMBER != 9999

求如何改写,谢谢
------解决方案--------------------
请问LZ提供的SQL语句是什么数据库的语句?
看语法应该不是SQL Server的.
------解决方案--------------------
试试:
SELECT  ct.name
FROM    ( ch_flatmod AS a
          LEFT JOIN ( SELECT    *
                      FROM      ch_flat
                      WHERE     HOUSE_NUMBER <> 9999
                    ) AS b ON a.HOUSE_ID_NEW = b.HOUSE_ID
        )
        LEFT JOIN ct_house_use ct ON b.house_use = ct.code
WHERE   ct.name IS NULL
        OR ct.name = ""
  相关解决方案