以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 如何用SQL语句提取字符串 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=76382) |
-- 作者:lihe60 -- 发布时间:2015/10/28 8:10:00 -- 如何用SQL语句提取字符串 数据库信息
科目名称 银行存款\\中行\\北京支行 银行存款\\中行\\天津支行 银行存款\\中行\\天津支行 银行存款\\农行\\北京支行 现金\\备用金
科目名称列有上述若干行数据,如何提取第一个“\\”字符前面的字符生成下面的表
科目名称 银行存款 现金 |
-- 作者:Hyphen -- 发布时间:2015/10/28 8:59:00 -- sqlserver这样用 sele ct substring(科目名称,0,PATINDEX(\'%\\%\',科目名称)) as 科目名称 from 表A |
-- 作者:大红袍 -- 发布时间: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 -- 发布时间:2015/10/28 12:10:00 -- 科目名称
银行存款 银行存款\\中行 银行存款\\农行 现金 现金\\备用金
这样的表有办法截取吗? |
-- 作者:大红袍 -- 发布时间:2015/10/28 12:21:00 -- 看3楼的提示。比如如果是access,就写
iif(InStr(科目名称, \'\\\') > 0, Mid(科目名称, 1, InStr(科目名称, \'\\\')), 科目名称) |
-- 作者:lihe60 -- 发布时间:2015/10/28 14:08:00 -- 以下是引用大红袍在2015/10/28 12:21:00的发言:
看3楼的提示。比如如果是access,就写
iif(InStr(科目名称, \'\\\') > 0, Mid(科目名称, 1, InStr(科目名称, \'\\\')), 科目名称) 这个代码用SQL数据库没有反应的。 |
-- 作者:大红袍 -- 发布时间:2015/10/28 14:45:00 -- select (case when CharIndex(科目名称,\'\\\') >= 0 then Substring(科目名称,0,CharIndex(科目名称,\'\\\')) else 科目名称 end) as 科目名称 f rom {表A} |