如何将3个章程拆分为sql server中的最后一个字符 [英] how to split 3 charters upto last character in sql server
问题描述
您好我在sql server中有一个疑问
$
如何在sql server中分割3到最后一个字符的长度
table:emp
id |姓名
1   | harikrishnaxx
2   | Baludevu
基于以上数据我想要输出如下:
id |姓名
1   | har
1 | ikr
1 | ish
1 | nax
1 | x
2   | bal
2 | ude
2 | vu
i尝试如下:
1st我创建了tablevalued函数然后调用了这个emp表中的功能
创建 FUNCTION DatesBetween(@name varchar(50))
RETURNS @dates TABLE(
DateValue varchar(50) NULL
)&bbsp
AS
BEGIN
声明@fin varchar(50)
声明@len int = (选择len(@name))
声明@i int
set @ i = 1
while(@ i< = @ len)
begin
插入@dates(DateValue)值(@fin)
set @fin = SUBSTRING(@ name,@ i,3)
set @ i = @ i + 3
END;
RETURN;
END;
select id, dbo.DatesBetween(name)from emp
但以上查询未获得确切结果。
你能告诉我怎么样在sql server中解决这个问题
Hi I have one doubt in sql server
how to split length of 3 upto last charcters in sql server
table : emp
id | name
1 | harikrishnaxx
2 | Baludevu
based on above data I want output like below :
id | name
1 | har
1 |ikr
1 |ish
1 |nax
1 |x
2 | bal
2 |ude
2 |vu
i tried like below :
1st I create tablevalued funtion then called this function in emp table
create FUNCTION DatesBetween(@name varchar(50))
RETURNS @dates TABLE (
DateValue varchar(50) NULL
)
AS
BEGIN
declare @fin varchar(50)
declare @len int = (select len(@name))
declare @i int
set @i=1
while (@i <=@len)
begin
insert into @dates (DateValue)values(@fin)
set @fin =SUBSTRING (@name ,@i,3)
set @i=@i+3
END;
RETURN;
END;
select id , dbo.DatesBetween(name ) from emp
but above query not getting exact result .
can you please tell me how to solve this issue in sql server
推荐答案
更近距离地查看函数的逻辑。您会发现需要交换两行。
Review the logic of your function a little closer. You will find that you need to swap two lines.
这篇关于如何将3个章程拆分为sql server中的最后一个字符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!