请教下各位一条sql语句,内容如下:
  在 authors 和 publishers 表中都有 booknum 列 和 city 列,通过 字段booknum 将两表关联起来,然后查询authors 和 publishers 是否在同一个 city 里,如果是的话则在authors 表中字段 cityflg 返回值 1, 否的话返回值 0 。请教一下实现上面功能sql语句应该怎么写?

解决方案 »

  1.   

    SELECT CASE a.city WHEN b.city THEN 1 ELSE 0 END AS IsSameCity
    FROM authors a
    FULL JOIN publishers b 
    ON a.booknum = b.booknum
      

  2.   

    select booknum , city = CASE a.city = b.city THEN 1 ELSE 0 END 
    from authors a, publishers b
    where authors.booknum = publishers.booknum
      

  3.   

    在 authors 和 publishers 表中都有 booknum 列 和 city 列,通过 字段booknum 将两表关联起来,然后查询authors 和 publishers 是否在同一个 city 里,如果是的话则在authors 表中字段 cityflg 返回值 1, 否的话返回值 0 。请教一下实现上面功能sql语句应该怎么写?------->此类问题用case when 可以解决select booknum,case when A.city=B.city then 1 else 0 end IsEqual
    from authors A
    inner join publishers B
    on A.booknum=B.booknum
      

  4.   

    select authors.booknum,cityflg(case when authors.city=publishers.city then 1 else 0 end) 
    from authors,publishers
    where authors.booknum=publishers.booknum