求个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