我在我的数据库中输入了以下条目:
images/test.jpg
Run Code Online (Sandbox Code Playgroud)
我想修剪条目所以我得到: test
所以基本上,我想要一切都在/
之前和之后.
我该如何解决?
Jos*_*ien 46
如果您想使用SQL将其从表中删除,请查看以下可以帮助您的函数:SUBSTRING
和CHARINDEX
.您可以使用它们来修剪条目.
可能的查询将如下所示(col
包含图像目录的列的名称在哪里:
SELECT SUBSTRING(col, LEN(SUBSTRING(col, 0, LEN(col) - CHARINDEX ('/', col))) + 1,
LEN(col) - LEN(SUBSTRING(col, 0, LEN(col) - CHARINDEX ('/', col))) - LEN(SUBSTRING(
col, CHARINDEX ('.', col), LEN(col))));
Run Code Online (Sandbox Code Playgroud)
有点丑陋的野兽.它还取决于'dir/name.ext'的标准格式.
编辑:
这个(灵感来自praveen)更通用,处理不同长度的扩展:
SELECT SUBSTRING(col, LEN(LEFT(col, CHARINDEX ('/', col))) + 1, LEN(col) - LEN(LEFT(col,
CHARINDEX ('/', col))) - LEN(RIGHT(col, LEN(col) - CHARINDEX ('.', col))) - 1);
Run Code Online (Sandbox Code Playgroud)
小智 33
使用以下功能
left(@test, charindex('/', @test) - 1)
Run Code Online (Sandbox Code Playgroud)
小智 21
之前
SELECT SUBSTRING(ParentBGBU,0,CHARINDEX('/',ParentBGBU,0)) FROM dbo.tblHCMMaster;
Run Code Online (Sandbox Code Playgroud)
后
SELECT SUBSTRING(ParentBGBU,CHARINDEX('-',ParentBGBU)+1,LEN(ParentBGBU)) FROM dbo.tblHCMMaster
Run Code Online (Sandbox Code Playgroud)
----选择字符前/包括/
select SUBSTRING ('abcde/wxyz',0,CHARINDEX('/','abcde/wxyz')+1)
Run Code Online (Sandbox Code Playgroud)
--选择/包括/之后的字符
select SUBSTRING('abcde/wxyz',CHARINDEX('/','abcde/wxyz'),LEN('abcde/wxyz'))
Run Code Online (Sandbox Code Playgroud)
declare @T table
(
Col varchar(20)
)
insert into @T
Select 'images/test1.jpg'
union all
Select 'images/test2.png'
union all
Select 'images/test3.jpg'
union all
Select 'images/test4.jpeg'
union all
Select 'images/test5.jpeg'
Select substring( LEFT(Col,charindex('.',Col)-1),charindex('/',Col)+1,len(LEFT(Col,charindex('.',Col)-1))-1 )
from @T
Run Code Online (Sandbox Code Playgroud)
我做了一个更通用的方法:
所以 :
DECLARE @a NVARCHAR(MAX)='images/test.jpg';
--Touch here
DECLARE @keysValueToSearch NVARCHAR(4000) = '/'
DECLARE @untilThisCharAppears NVARCHAR(4000) = '.'
DECLARE @keysValueToSearchPattern NVARCHAR(4000) = '%' + @keysValueToSearch + '%'
--Nothing to touch here
SELECT SUBSTRING(
@a,
PATINDEX(@keysValueToSearchPattern, @a) + LEN(@keysValueToSearch),
CHARINDEX(
@untilThisCharAppears,
@a,
PATINDEX(@keysValueToSearchPattern, @a) + LEN(@keysValueToSearch)
) -(PATINDEX(@keysValueToSearchPattern, @a) + LEN(@keysValueToSearch))
)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
317282 次 |
最近记录: |