首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

一个查询语句100分求解!解决方案

2012-03-08 
一个查询语句100分求解!!!!!!ABC110000北京1110100北京市110000110101东城区110100110102西城区1101001101

一个查询语句100分求解!!!!!!
A                   B                 C
110000北京1
110100北京市110000
110101东城区110100
110102西城区110100
110103崇文区110100
110104宣武区110100
110105朝阳区110100
110106丰台区110100
110107石景山区110100
110108海淀区110100
110109门头沟区110100
110111房山区110100


省级字段C为1     市级字段C等于省级字段A   区级字段C又等于市级字段A
按一个城市省名得到城市和所有区


[解决办法]
select * from table where left(a,2) = (select left(a,2) from table where b=省名)

行政区划的前2位是单一无二的。
[解决办法]
前六位为到县区级单位.
其中前两位为省,自治区,直辖市的代码(后四位为0000).从11-65,如11--北京,21--辽宁,65--新疆
次两位为地市\自治州.(后两位为00)
最后两位为区县.
[解决办法]
select * -- 选择出省级
from t_City
where B = '北京 '

union

select * --选择出省级下面的城市
from t_City
where C = (select A
from t_City
where B = '北京 ')

union

select * --选择出城市下面的区
from t_City
where C = (select A
from t_City
where C = (select A
from t_City
where B = '北京 '))
[解决办法]
假如只有三层
表名为 M
select m.b,m1.b,m2.b
from M,M as m1,M as m2
where m.A=m1.C and m1.A=m2.C
and m.B= '北京 '
order by m.b,m1.b,m2.b

热点排行