日期:2014-05-19  浏览次数:20559 次

求个SQL查询
表结构如:
name       address       district     city         province     country  
zhou       建新东路     江北区         重庆市     重庆市         中国
yang       什么路         什么区         什么市     四川省         中国
要求当province   等于city时只显示如:中国重庆市江北区建新东路
不等的时候就显示如:中国四川省什么市什么区什么路
用一条sql语句实现
谢谢了

------解决方案--------------------
select country+province+case when city=province then ' ' else city end+district+address 地址 from 表
------解决方案--------------------
SELECT
country+
CASE WHEN province =city THEN
city
ELSE
province+city
END +
district+address
case when city=province then ' ' else city end+district+address 地址 from 表

------解决方案--------------------
select city=case city when province then ' ' else city end,...
------解决方案--------------------
case when 语句

------解决方案--------------------
select country+province+case when city=province then ' ' else city end+district+address 地址 from 表
------解决方案--------------------
create table T(name varchar(10), address varchar(10), district varchar(10), city varchar(10), province varchar(10), country varchar(10))
insert T select 'zhou ', '建新东路 ', '江北区 ', '重庆市 ', '重庆市 ', '中国 '
union all select 'yang ', '什么路 ', '什么区 ', '什么市 ', '四川省 ', '中国 '


select country+province+(case when province=city then ' ' else city end)+district+address
from T

--result
--------------------------------------------------
中国重庆市江北区建新东路
中国四川省什么市什么区什么路

(2 row(s) affected)


------解决方案--------------------
select country+province+(case when province=city then ' ' else city end)+district+address from tablename