sql - 使用 SQL 将文本重新排列为不同的顺序
问题描述
我有一个文本RAW/+A/@B/abs.m>C
,它必须转换为A.B.C
有人可以帮助我使用高效的 SQL。我正在努力建立一个。
这是要遵循的规则 - 使用“>”右侧的任何内容,然后使用每个“+”或“@”之后的任何内容
例如fixedpoint/fixedpoint/+embedded/@fi/abs.m>abs
变成 embedded.fi.abs
解决方案
如果每个特殊字符只有一个实例,+ @ >
则以下将起作用。
declare @table table (c1 varchar(64))
insert into @table
values
('RAW/+A/@B/abs.m>C '),
('fixedpoint/fixedpoint/+embedded/@fi/abs.m>abs')
;with cte as(
select
fst = substring(c1,charindex('+',c1) + 1,charindex('/',substring(c1,charindex('+',c1) + 1,8000)) - 1)
,mid = substring(c1,charindex('@',c1) + 1,charindex('/',substring(c1,charindex('@',c1) + 1,8000)) - 1)
,lst = substring(c1,charindex('>',c1) + 1,8000)
from
@table)
select
fst + '.' + mid + '.' + lst
from cte
推荐阅读
- r - 如何修复 cor() 函数中的“尺寸不兼容”错误
- node.js - 用json渲染猫鼬关系
- python - 我怎样才能得到今年从第一天到今天的所有日期?
- c# - 如何将多个 C# Web API 解决方案部署到同一个 IIS 端口?
- android - Android CheckBox 取消选中
- python - 查找“(”的索引
- java - RecyclerView 无法检索 Json 对象
- jquery - 从 json ajax 发送日期到 webapi 显示值 1/1/0001
- asp.net - 如何在 ASPnet 中使用 gacutil?
- python - 从 csv 文件中绘制股票数据,未正确显示日期?