首页 新闻 赞助 找找看

一条sql语句

0
[已关闭问题]

id 编号    name 地区名字    jc  地区简称

id               name         jc

100    中国          zg

1001          湖北          hb

1001001    武汉           wh

1001002    黄冈             hg

1002           四川             sc

1002001    成都             cd

 

要求把省以下城市的简写  换成与省简写一样

like%'远远'%的主页 like%'远远'% | 小虾三级 | 园豆:635
提问于:2009-07-13 03:28
< >
分享
其他回答(2)
0

declare @tb table(id varchar(50), name varchar(50), jc varchar(20))
insert @tb (id, name, jc)
select '100', '中国', 'zg' union all
select '1001', '湖北', 'hb' union all
select '1001001', '武汉', 'wh' union all
select '1001002', '黄冈', 'hg' union all
select '1002', '四川', 'sc' union all
select '1002001', '成都', 'cd'

select * from @tb

update  a
set
        a.jc = (select c.jc  from @tb c where left(a.id,4) = c.id)
From    @tb a, @tb b
Where   len(a.id)> 4

select * from @tb

/*Result
    100         中国 zg
    1001       湖北 hb
    1001001 武汉 hb
    1001002 黄冈 hb
    1002       四川 sc
    1002001 成都 sc
*/

Juntor | 园豆:205 (菜鸟二级) | 2009-07-13 08:34
0

SELECT a.*,

    省简称 = CASE WHEN LEN(a.Id) > 4 THEN (SELECT jc FROM Table b WHERE b.id = a.substring(id, 1, 4))

                 LESE '' END

FROM Table a

就是一个自关联。大概这样,没测试过。

阿水 | 园豆:506 (小虾三级) | 2009-07-13 12:59
0

 update table_name set
 table_name.jc=(select c.jc from table_name c where left(table_name.id,4)=c.id and len(table_name.id)>4)
 where len(table_name.id)>4

默默→思考 | 园豆:212 (菜鸟二级) | 2009-07-14 09:17
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册