如何在SQL Server中使用函数通过提供函数名称,特定字母,下一个字母的编号来选择一个特定字母之后的下一个n个字母

时间:2019-01-30 11:11:08

标签: sql-server

如何在SQL Server中使用函数通过提供函数名称,特定单词,下一个要打印的字母数来选择一个特定字母后的下n个字母

例如:函数名称,“特定字母”,要在特定字母旁边打印的字母

3 个答案:

答案 0 :(得分:0)

在SQL Server上将CHARINDEXSUBSTRING混合在一起。

DECLARE @Text VARCHAR(100) = 'The cat is under the table.'

DECLARE @CharToSearch CHAR = 's'
DECLARE @CharactersToRetrieve INT = 5

SELECT
    CharacterPosition = CHARINDEX(@CharToSearch, @Text),
    TrimmedString = SUBSTRING(
        @Text,
        CHARINDEX(@CharToSearch, @Text) + 1,
        @CharactersToRetrieve)

结果:

CharacterPosition   TrimmedString
10                   unde

答案 1 :(得分:0)

如果您使用的是MySQL,请尝试以下查询

select substring(user_name,locate("a",user_name)+1,2) from user_details where user_id=3;

在上述查询中,我尝试从user_name表的user_details字段的user_id字段中首次出现字母'a'后获取2个字母,

根据需要修改查询。

答案 2 :(得分:0)

创建函数new(@text varchar(50),@ CharToSearch char,@ CharactersToRetrieve int)

返回varchar(100)

AS

开始

DECLARE @new varchar(20)
DECLARE @CharToSearchs int
select @CharToSearchs= CHARINDEX(@CharToSearch, @text);
set @new=SUBSTRING(@text,@CharToSearchs+1,@CharactersToRetrieve)
RETURN @new

END