下面有没有更高效的写法呢?

jianshao810 2011-05-17 03:54:48

select replace( left(actor, charindex('/',actor,0)),'/','') from SCP_ABWFRecord
...全文
88 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
LiJun12112003 2011-05-17
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 jianshao810 的回复:]

引用 7 楼 cceo 的回复:

clr函数应该写起来很简单,不过需要测试下,效率是否真的提高。

自己写的函数?
[/Quote]

对自己用c#或vb来编写方法处理,部署到数据库上即可
--小F-- 2011-05-17
  • 打赏
  • 举报
回复
CLR是公共语言环境 在SQL SERVER 中执行托管代码

可以用自己熟悉的开发语言 来开发托管代码实现数据操作
--小F-- 2011-05-17
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 jianshao810 的回复:]
引用 7 楼 cceo 的回复:

clr函数应该写起来很简单,不过需要测试下,效率是否真的提高。

自己写的函数?
[/Quote]

你的这个用到了函数 用索引无效
jianshao810 2011-05-17
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 cceo 的回复:]

clr函数应该写起来很简单,不过需要测试下,效率是否真的提高。
[/Quote]
自己写的函数?
jianshao810 2011-05-17
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 cceo 的回复:]

SQL code
select case when charindex('/',actor,0) > 0 then left(actor, charindex('/',actor,0)-1) else actor end from SCP_ABWFRecord
[/Quote]
select replace( left(actor, charindex('/',actor,0)),'/','') from SCP_ABWFRecord
与这个应该一样的效率吧。
字符长度都不长。
CCEO 2011-05-17
  • 打赏
  • 举报
回复
clr函数应该写起来很简单,不过需要测试下,效率是否真的提高。
jianshao810 2011-05-17
  • 打赏
  • 举报
回复
都没有 clr 函数函数呢。。
CCEO 2011-05-17
  • 打赏
  • 举报
回复
select case when charindex('/',actor,0) > 0 then left(actor, charindex('/',actor,0)-1) else actor end from SCP_ABWFRecord

jianshao810 2011-05-17
  • 打赏
  • 举报
回复
select left(actor, charindex('/',actor,0)-1) from SCP_ABWFRecord


消息 536,级别 16,状态 5,第 1 行
传递到 SUBSTRING 函数的长度参数无效。

楼上的真聪明。。但是因为有些是空值。所以报上面的错。
我看看 clr 函数
CCEO 2011-05-17
  • 打赏
  • 举报
回复
select left(actor, charindex('/',actor,0)-1) from SCP_ABWFRecord

快溜 2011-05-17
  • 打赏
  • 举报
回复
select left(actor, charindex('/',actor,0)-1) from SCP_ABWFRecord
LiJun12112003 2011-05-17
  • 打赏
  • 举报
回复
如果是05的话可以考虑用clr函数,sqlserver处理这种逻辑循环的效率远不如clr函数,据说效率能相差10倍

ps楼主的结贴率好奇怪,100.94%……

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧