[ztjSQL]数据库一字段为路径的处理和查找

 问题:数据库中有一个字段存放了文件全路径,我想取得文件夹路径并按文件夹group一下,不知道需要怎么写。。。

字符串处理"c:/XXXX/333.dat"如何取得"c:/XXXX/"

而后group by "c:/XXXX"


[解决方法]
declare @t table (
path varchar(20)
)

insert @t select

'c:/XXXX/333.dat'
union all select
'c:/XXXX/444.dat'
union all select
'c:/XXXX/44/4.dat'
union all select
'c:/XXXX/44/1.dat'
union all select
'c:/XXXX/44/2.dat'
union all select
'c:/XXXX/33/1.dat'

select * from @t

select path, REVERSE(path) as b from @t

select path,REVERSE(path) as b,charindex('/',REVERSE(path)) as c from @t

select left(path,len(path)-charindex('/',REVERSE(path))) as a,count(*) as cnt
from @t
group by left(path,len(path)-charindex('/',REVERSE(path)))

charindex说明
第一个代码示例返回序列"wonderful"在 titles 表的 notes 列中开始的位置。第二个示例使用可选的 start_location 参数从 notes 列的第五个字符开始寻找"wonderful"。第三个示例显示了当 expression2 内找不到 expression1 时的结果集。

USE pubs
GO
SELECT CHARINDEX('wonderful', notes)
FROM titles
WHERE title_id = 'TC3218'
GO

-- Use the optional start_location parameter to start searching
-- for wonderful starting with the fifth character in the notes
-- column.
USE pubs
GO
SELECT CHARINDEX('wonderful', notes, 5)
FROM titles
WHERE title_id = 'TC3218'
GO

下面是第一个查询和第二个查询的结果集:

-----------
46         

(1 row(s) affected)

USE pubs
GO
SELECT CHARINDEX('wondrous', notes)
FROM titles
WHERE title_id='TC3218'
GO

下面是结果集。
-----------
0         

(1 row(s) affected)

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值