我正在使用SQL。从文件名中删除扩展名
在表tblDemo中,其中一列是'FileName'。此列的每一行都包含具有任何扩展名的不同文件名。 例如。 'flower.jpeg','batman.mov',study.pdf等
请建议我一个查询,这可以帮助我从'文件名'列的每一行中删除扩展名(以及点) 。所以我只能拿到名字Ex。 '花', '蝙蝠侠', '学习' 等
感谢
我正在使用SQL。从文件名中删除扩展名
在表tblDemo中,其中一列是'FileName'。此列的每一行都包含具有任何扩展名的不同文件名。 例如。 'flower.jpeg','batman.mov',study.pdf等
请建议我一个查询,这可以帮助我从'文件名'列的每一行中删除扩展名(以及点) 。所以我只能拿到名字Ex。 '花', '蝙蝠侠', '学习' 等
感谢
试试这个:
UPDATE TableName
SET FileName = REVERSE(SUBSTRING(REVERSE(FileName),
CHARINDEX('.', REVERSE(FileName)) + 1, 999))
你是冠军。有效。它确实从fileName中删除了扩展名,即使文件名中有多个'dot'也是如此。我会稍微编辑一下你的帖子,以便将来可以帮助其他人。 – Kings
对于MySQL用户使用LOCATE而不是CHARINDEX –
链接无法正常工作。 – thecoolmacdude
测试的SQL Server上。这显示没有扩展名的文件名,更改为更新/设置以修改数据。
SELECT left([FileName], len([FileName]) - charindex('.', reverse([FileName])))
FROM tblDemo
编辑:使用反向修正,所以当字段包含多个点它也适用。
这里更新表版本:
UPDATE Testing
Set [FileName] = left([FileName],
len([FileName]) - charindex('.', Reverse([FileName])))
这将帮助 - http://stackoverflow.com/questions/1024978/find-index-of-a-subs-string-using-t-sql – Kshitij