日期:2014-05-16  浏览次数:20521 次

求一个sql的替换函数
表A  中有如下字段 aa   字段数据如下:
aa                          
.我是中国人
.你是哪里的人
.我是地球村是反对法
.该的撒范德萨分公司大郭德纲


现在想把字段aa中的记录,前面的.去掉变为
aa
我是中国人
你是哪里的人
我是地球村是反对法
该的撒范德萨分公司大郭德纲

请问怎么写语句?
------解决方案--------------------

create table test(aa nvarchar(100))
insert test 
select '.我是中国人' union all
select '.你是哪里的人' union all
select '.我是地球村是反对法' union all
select '.该的撒范德萨分公司大郭德纲' 

update test set aa=replace(aa,'.','')

select * from test 
/*
我是中国人
你是哪里的人
我是地球村是反对法
该的撒范德萨分公司大郭德纲
*/

------解决方案--------------------
UPDATE 表A
SET aa = SUBSTRING(aa, 2, 4000)
FROM 表A
WHERE LEFT(aa, 1)='.'
------解决方案--------------------
SELECT  REPLACE('.我是中国人','.','')

------解决方案--------------------
引用:
select 
(case 出院西医其他诊断1 when (LEFT(出院西医其他诊断1, 1)='.') then REPLACE(出院西医其他诊断1, '.', '') then 出院西医其他诊断1 )as tt 

from  HOSPITAL_GATHERING

执行语句提示
消息 102,级别 15,状态 1,第 2 行
'=' 附近有语法错误。

请问哪里有错误

else end 没有 


select 
(case 出院西医其他诊断1 when (LEFT(出院西医其他诊断1, 1)='.') then REPLACE(出院西医其他诊断1, '.', '') else 出院西医其他诊断1  end )as tt 

from  HOSPITAL_GATHERING

------解决方案--------------------

create table test(aa nvarchar(100))
insert test 
select '.我是中国人' union all
select '.你是哪里的人' union all
select '.我是地球村是反对法' union all
select '.该的撒范德萨分公司大郭德纲' union all
select '.新增测试.语句'

update test set aa=STUFF(aa,1,1,'')

select * from test 
/*
我是中国人
你是哪里的人
我是地球村是反对法
该的撒范德萨分公司大郭德纲
新增测试.语句
*/

------解决方案--------------------
引用:
表A  中有如下字段 aa   字段数据如下:
 aa                          
 .我是中.国人
 .你.是哪里的人
 .我是.地球村是反对法
 .该的撒范.德萨分公司.大郭德纲
 

现在想把字段aa中的记录,前面的.去掉变为(注意中间的点不要去掉)

 aa
 我是中.国人
 你.是哪里的人
 我是.地球村是反对法
 该的撒范.德萨分公司.大郭德纲
 
请问怎么写语句? 


SELECT  STUFF('.我是中国人',1,1,'')
 你试试啊