标题:[求助]charindex的使用
只看楼主
chenxiang
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2007-3-14
 问题点数:0 回复次数:14 
[求助]charindex的使用
student 表中只有一个字段name,varchar,如果name中含有'.',则将'.'后字符删去,
我想用下列方法解决,可以吗,如果不可以,请各位大虾说下原因
declare @integer int
update student set name=
case
when charindex('.',name)>0 then select @integer=charindex('.',name)
else select @integer=len(name)
end
left(name,@integer)

报错

服务器: 消息 156,级别 15,状态 1,行 4
在关键字 'select' 附近有语法错误。
服务器: 消息 156,级别 15,状态 1,行 5
在关键字 'else' 附近有语法错误。
服务器: 消息 156,级别 15,状态 1,行 6
在关键字 'end' 附近有语法错误。
搜索更多相关主题的帖子: charindex name 服务器 integer select 
2007-09-28 18:33
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
得分:0 

create table #t(
name varchar(50)
)
insert into #t values('ms-sqlserver')
insert into #t values('name.tt')
insert into #t values('efadf')
insert into #t values('cvadfe.aetf')

update #t
set name=case
when charindex('.',name)>1 then left(name,charindex('.',name)-1)
else name
end

select name from #t
drop table #t


我的msn: myfend@
2007-09-28 18:58
西风独自凉
Rank: 8Rank: 8
等 级:贵宾
威 望:43
帖 子:3380
专家分:28
注 册:2007-8-2
得分:0 
用替換函數...
update 表 set name=case when charindex('.',name)>1 then replace(name,'.','') else name end

2007-09-29 09:17
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
得分:0 
他是说将.后的字符串删除.不是去掉.

我的msn: myfend@
2007-09-29 09:22
西风独自凉
Rank: 8Rank: 8
等 级:贵宾
威 望:43
帖 子:3380
专家分:28
注 册:2007-8-2
得分:0 

汗...沒看清...


2007-09-29 09:23
西风独自凉
Rank: 8Rank: 8
等 级:贵宾
威 望:43
帖 子:3380
专家分:28
注 册:2007-8-2
得分:0 
也只要一句,好像沒必要要那麼多...
update 表 set name=case when charindex('.',name)>1 then left(name, charindex('.',name,1)-1) else name end

2007-09-29 09:26
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
得分:0 

那你不是抄我?..晕菜..


我的msn: myfend@
2007-09-29 09:28
西风独自凉
Rank: 8Rank: 8
等 级:贵宾
威 望:43
帖 子:3380
专家分:28
注 册:2007-8-2
得分:0 
暈...誰叫你寫那麼多...

2007-09-29 09:51
西风独自凉
Rank: 8Rank: 8
等 级:贵宾
威 望:43
帖 子:3380
专家分:28
注 册:2007-8-2
得分:0 
这样总没有抄人你的吧。。。
update 表 set name=case when charindex('.',name)>1 then stuff(name, len(name)-charindex('.',name,1),'') else name end

2007-09-29 09:54
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
得分:0 
思路是抄我的..

我的msn: myfend@
2007-09-29 10:00



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-173757-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.359091 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved