路过请进,SQL字符串操作相关,在线等.
数据库中一个表table_1,有多个字段,其中一个字段名为col_1,   类型为varchar(150). 
 其值列举几个如下: 
 id                                    col_1 
 1                                          [1]aaaaaa 
 2                                          [7]bbbbbbbbbbb 
 3                                          [13]cccccccc 
 4                                          [0]ddddddd 
 我现在想查询出表中的这些字段值,但是col_1这一列,我不想获得所有字符串,只想要从最后一个中括号起到最后的字符串,也就是想得到没有中括号的字符如下: 
 id                           col_1 
 1                                 aaaaaa 
 2                                 bbbbbbbbbbb 
 3                                 cccccc 
 4                                 ddddddd 
 请问如何能实现?我采用了substring(col_1,6,28)这个函数,但是存在一个问题就是有的并不是从第6个开始,而是从第8个开始,如何才能解决呢?或是有什么其他的方法呢?谢谢!在线等.
------解决方案--------------------select right(字段名,case when charindex( '] ',reverse(字段名))-1> =0 then charindex( '] ',reverse(字段名))-1 else 0 end)   
 from 表名   
------解决方案--------------------create table tb(id int,col_1 varchar(20)) 
 insert into tb values(1, '[1]aaaaaa ') 
 insert into tb values(2, '[7]bbbbbbbbbbb ') 
 insert into tb values(3, '[13]cccccccc ') 
 insert into tb values(4, '[0]ddddddd ') 
 select id,substring(col_1,charindex( '] ',col_1) + 1 , len(col_1)) col_1  
 from tb 
 where charindex( '] ',col_1) >  0 
 drop table tb   
 /* 
 id          col_1                 
 ----------- --------------------  
 1           aaaaaa 
 2           bbbbbbbbbbb 
 3           cccccccc 
 4           ddddddd 
 (所影响的行数为 4 行) 
 */ 
------解决方案--------------------select id, right(col_1 , len(col_1)-charindex( '] ',col_1) ) as col_1 from tb