我有一个表(Person),它有一个列上载包含上载的文档,它们具有诸如.docx,.doc等扩展名。但是一些用户输入文档,如test.test .doc,test.test.test.docx,表示同一名称中的多个句点。我想将这多个句点替换为_(test_test.doc,test_test_test.docx)。是否可以通过SQL?任何帮助表示赞赏!从sql中的名称中删除多个句点
1
A
回答
4
这里是一个(相当复杂)的方式来做到这一点:
DECLARE @DataTable TABLE(Data VARCHAR(100))
INSERT INTO @DataTable
VALUES ('test.test.doc'),
('test.test.test.docx')
SELECT REPLACE(LEFT(Data,LEN(Data)-CHARINDEX('.',REVERSE(Data),0)),'.','_')+
RIGHT(Data,CHARINDEX('.',REVERSE(Data),0)) Col1
FROM @DataTable
这些结果如下:
╔═════════════════════╗
║ Col1 ║
╠═════════════════════╣
║ test_test.doc ║
║ test_test_test.docx ║
╚═════════════════════╝
而且here is a sqlfiddle与它的现场演示。
+0
+1击败我吧 – Blorgbeard
+0
尽管你不需要charindex中的',0',那是默认值。 – Blorgbeard
+0
@Blorgbeard是的,即使这是默认值,仍然会在'CHARINDEX'上放置',0'。 – Lamak
0
我认为这会更短,但它原来是相同的长度。尽管如此,这里是另一种方式:
IsNull(Stuff(
Replace(DocName, '.', '_'),
Len(DocName) - CharIndex('.', Reverse(DocName)) + 1,
1,
'.'
), DocName)
0
尝试这一个 -
DECLARE @DataTable TABLE (txt VARCHAR(100))
INSERT INTO @DataTable (txt)
VALUES ('test.test.doc'), ('test.test.test.docx')
SELECT
REVERSE(REPLACE(SUBSTRING(txt, CHARINDEX('.', txt, 1) + 1, LEN(txt)), '.', '_'))
+ REVERSE(LEFT(txt, CHARINDEX('.', txt, 0)))
FROM (
SELECT txt = REVERSE(txt)
FROM @DataTable
) t
相关问题
- 1. 从JSON响应中的键名称中删除句号
- 2. 删除名称中的多余中间空间 - SQL
- 3. 从机器名称中删除域名
- 4. 如何返回从删除语句中使用的表名称?
- 5. 如何从多个Rails路径中删除控制器名称?
- 6. 为什么groovy sql从SQL查询中删除模式名称?
- 7. 从多个表中删除SQL
- 8. SQl从多个表中删除
- 9. 从SQL Server中删除多个ID
- 10. 是否可以从同一个SQL语句中的多个表中删除?
- 11. 删除从HTML表点击按钮的名称列表中的名称相应
- 12. Bash&Sql - 从多个文件名中删除specialChar
- 13. 通过SQL语句删除多行“从表名中删除”,而触发“之后删除”已对
- 14. HiveQL:从字符串中删除句点
- 15. 如何从目录名称中删除最后的“点”
- 16. 从XML删除指定名称空间中的所有节点
- 17. 从url中删除目录名称Wordpress
- 18. 从文本文件中删除名称
- 19. VB.NET:从名称中删除.png
- 20. jQuery - 从类名称中删除逗号
- 21. Javascript - 从表中删除项目名称?
- 22. 从子类中删除类名称
- 23. 从data.frame名称中删除空格
- 24. 从列表中删除特定名称
- 25. 从WebService中删除名称空间
- 26. 从servicestack中删除project.serviceclass名称url
- 27. htaccess从url中删除参数名称
- 28. 从列名称中删除后缀
- 29. 从JSESSIONID中删除服务器名称
- 30. 从名称中删除前缀python
难道有什么错在文件名中有时间? – Blorgbeard
是的我有一个应用程序处理相同,并得到崩溃。作为解决方法,我们需要将其应用于已输入的值,并且还需要进行验证以防止文件名中出现多个句点。 – user2395176
您无法修复该应用程序?好。 – Blorgbeard