Foxtable(狐表)用户栏目专家坐堂 → 如何用SQL语句提取字符串


  共有2641人关注过本帖树形打印复制链接

主题:如何用SQL语句提取字符串

帅哥哟,离线,有人找我吗?
lihe60
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6885 积分:43595 威望:0 精华:0 注册:2009/3/2 14:07:00
如何用SQL语句提取字符串  发帖心情 Post By:2015/10/28 8:10:00 [只看该作者]

数据库信息

 

科目名称

银行存款\中行\北京支行

银行存款\中行\天津支行

银行存款\中行\天津支行

银行存款\农行\北京支行

现金\备用金

 

科目名称列有上述若干行数据,如何提取第一个“\”字符前面的字符生成下面的表

 

科目名称

银行存款

现金


 回到顶部
帅哥哟,离线,有人找我吗?
Hyphen
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2015/10/28 8:59:00 [只看该作者]

sqlserver这样用

sele ct substring(科目名称,0,PATINDEX('%\%',科目名称)) as 科目名称 from 表A


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/10/28 9:04:00 [只看该作者]

1、查找\的位置;

 

2、用substring截取

 

参考函数

 

http://www.foxtable.com/help/topics/0692.htm

 

http://www.foxtable.com/help/topics/1827.htm

 


 回到顶部
帅哥哟,离线,有人找我吗?
lihe60
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6885 积分:43595 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2015/10/28 12:10:00 [只看该作者]

科目名称

 

银行存款

银行存款\中行

银行存款\农行

现金

现金\备用金

 

这样的表有办法截取吗?


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/10/28 12:21:00 [只看该作者]

看3楼的提示。比如如果是access,就写

 

iif(InStr(科目名称, '\') > 0, Mid(科目名称, 1, InStr(科目名称, '\')), 科目名称)


 回到顶部
帅哥哟,离线,有人找我吗?
lihe60
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6885 积分:43595 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2015/10/28 14:08:00 [只看该作者]

以下是引用大红袍在2015/10/28 12:21:00的发言:

看3楼的提示。比如如果是access,就写

 

iif(InStr(科目名称, '\') > 0, Mid(科目名称, 1, InStr(科目名称, '\')), 科目名称)

这个代码用SQL数据库没有反应的。


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/10/28 14:45:00 [只看该作者]

select (case when CharIndex(科目名称,'\') >= 0 then Substring(科目名称,0,CharIndex(科目名称,'\')) else 科目名称 end) as 科目名称 f rom {表A}

 回到顶部