Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 子串查询_Sql_Substring - Fatal编程技术网

Sql 子串查询

Sql 子串查询,sql,substring,Sql,Substring,我想从下面的单元格值wrt中得到子字符串- 输入:J.H.Ambani.School----学校 输出:H.Ambani-----------MidName 这就是第一个点和最后一个点之间的所有文本。字符串的长度或字符串中的点数可以是任意的。我正在尝试对上面的输入列School进行查询,以获取输出列的MidName。它的sql查询是什么?对于Oracle数据库: SELECT REGEXP_REPLACE(yourColumn, '^[^.]*.|.[^.]*$', '') AS you

我想从下面的单元格值wrt中得到子字符串-

输入:J.H.Ambani.School----学校

输出:H.Ambani-----------MidName

这就是第一个点和最后一个点之间的所有文本。字符串的长度或字符串中的点数可以是任意的。我正在尝试对上面的输入列School进行查询,以获取输出列的MidName。它的sql查询是什么?

对于Oracle数据库:

SELECT
    REGEXP_REPLACE(yourColumn, '^[^.]*.|.[^.]*$', '') AS yourAlias
FROM yourTable

如果你的陈述正确理解了你的问题 这就是第一个点和最后一个点之间的所有文本。下面是您的问题的解决方案,如下所示。下面是SQL SERVER中的工作解决方案,对于其他数据库,由于时间不足,我无法检查

@SourceString:这是您的输入

@DestinationString:这是您的输出

declare @SourceString varchar(100)='J.H.Ambani.School'
declare @DestinationString varchar(100)
;with result as
(
select ROW_NUMBER()over (order by (select 100))SNO,d from(
select t.c.value('.','varchar(100)')as d from
(select cast('<a>'+replace(@SourceString,'.','</a><a>')+'</a>' as     xml)data)as A cross apply data.nodes('/a') as t(c))B
)
select @DestinationString=COALESCE(@DestinationString+'.','')+ISNULL(d,'') from result where SNO>(select top 1 SNO from result order by SNO)
and SNO<(select top 1 SNO from result order by SNO desc)

select @DestinationString

哪个数据库引擎?输入如“a.b.c.d.e.f.school”如何?