新手求一SQL语句

huangjing81 2005-04-20 09:15:17
现有一表(Archive)里有一字段(ArchiveID),值为:

ArchiveID
a(1000)
b(1001)
c(1002)
ca(1003)
cb(1004)
c1(1005)
101(1006)

……
字段为字符型,括号内的值都是四位,前面的字母及数字长度不一致。请问用怎样一条语句能使去除该字段各记录后面的括号和数字,或是其它方法能达到目的也行。就像下面这种结果:
ArchiveID
a
b
c
ca
cb
c1
101

……

初学数据库,还望各位不要见笑。
...全文
91 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yujiang930 2005-04-23
  • 打赏
  • 举报
回复
学习...
huangjing81 2005-04-21
  • 打赏
  • 举报
回复
to: easthero(easthero)
谢谢你的帮助!
还是提示 Procedure 'char_length' not found

我现在用以下语句达到了想要的效果。
select left(ArchiveID,charindex('(',ArchiveID)-1) from Archive where ArchiveID like '%(%'

直接找到括号出现的位置,然后取左。不过这样如果字段里本身就包括括号就不好整了。
easthero 2005-04-21
  • 打赏
  • 举报
回复
不好意思查了一下书才发现两个函数都写错了。hehe
selelct substring(ArchiveID, 1, char_length(ArchiveID)-6) from Archive;
huangjing81 2005-04-21
  • 打赏
  • 举报
回复
我用的Sybase,在isql里运行出现上面提示。
huangjing81 2005-04-20
  • 打赏
  • 举报
回复
咋没人回呢,都是高手,不屑么??
darkread 2005-04-20
  • 打赏
  • 举报
回复
len是肯定有的,你用的是MS SQL么?
huangjing81 2005-04-20
  • 打赏
  • 举报
回复
to: easthero(easthero)
你说的不行啊,提示 Procedure 'len' not found
应该是说没有这个函数吧。
easthero 2005-04-20
  • 打赏
  • 举报
回复
selelct substr(ArchiveID, 1, len(ArchiveID)-6) from Archive;

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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