当前位置: 代码迷 >> Sql Server >> 求一条这样的SQL.该怎么处理
  详细解决方案

求一条这样的SQL.该怎么处理

热度:118   发布时间:2016-04-27 19:22:07.0
求一条这样的SQL...
有以下数据:
services b_flag b_PortCode POL POD b_id PortCode
xx 0 0 HK 0 14
xx 1 0 Guam 1 19
xx 0 19 Busan 0 21
xx 0 19 Tacoma 0 16
xx 1 0 Newark 2 26
xx 0 26 GOGO 0 15
..
..
要得到这样的结果:查出b_flag=1对应的PortCode和b_id,然后给b_PortCode=相对应的PortCode
的POL或者POD的前面加上"*",如果相对应的b_id=1加一个*,为2时加两个*,依次类推..
例如,上面的数据应该输出这样的结果:

services b_flag b_PortCode POL POD b_id PortCode
xx 0 0 HK 0 14
xx 1 0 Guam 1 19
xx 0 19 *Busan 0 21
xx 0 19 *Tacoma 0 16
xx 1 0 Newark 2 26
xx 0 26 **GOGO 0 15
..
..
用一条语句应该怎样写?

------解决方案--------------------
SQL code
create table tb(services varchar(10),b_flag int,b_PortCode int,POL_POD varchar(20),b_id int,PortCode int)insert into tb values('xx',       0,      0 ,         'HK'     ,   0,     14) insert into tb values('xx',       1,      0 ,         'Guam'   ,   1,     19) insert into tb values('xx',       0,      19,         'Busan' ,   0,     21) insert into tb values('xx',       0,      19,         'Tacoma',   0,     16) insert into tb values('xx',       1,      0 ,         'Newark' ,   2,     26) insert into tb values('xx',       0,      26,         'GOGO' ,   0,     15)goupdate tbset POL_POD = left('**********',t.b_id) + a.POL_PODfrom tb a,(select * from tb where b_flag = 1) twhere a.b_portcode = t.portcodeselect * from tbdrop table tb/*services   b_flag      b_PortCode  POL_POD              b_id        PortCode    ---------- ----------- ----------- -------------------- ----------- ----------- xx         0           0           HK                   0           14xx         1           0           Guam                 1           19xx         0           19          *Busan               0           21xx         0           19          *Tacoma              0           16xx         1           0           Newark               2           26xx         0           26          **GOGO               0           15(所影响的行数为 6 行)*/
  相关解决方案