从数据库表中分割全名的第一个中间名和姓氏

从数据库表中分割全名的第一个中间名和姓氏

本文介绍了从数据库表中分割全名的第一个中间名和姓氏的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

eid ename
1   kula sekhar reddy
2   sachin ramesh tendulker
3   mahindra singh dhoni
4   ravi chandra aswin





所需输出如下:





Required Output like bellow

eid   firstname  middlename   lastname
1      kula       sekhar       reddy
2      sachin     ramesh       tendulker
3       mahindra  singh        dhoni
4       ravi      chandra     aswin





我尝试过:



请提供查询以显示如上所示的名称



What I have tried:

Please give Query to display names like above

推荐答案



CREATE FUNCTION STRING_SPLIT (@STR NVARCHAR(MAX), @DEL NCHAR(1) = ' ')
RETURNS
	@RV TABLE (VALUE NVARCHAR (MAX))
AS
BEGIN

 DECLARE @PART NVARCHAR(MAX)
 DECLARE @POS INT

 WHILE CHARINDEX(@DEL, @STR) > 0
 BEGIN
  SELECT @POS  = CHARINDEX(@DEL, @STR)  
  SELECT @PART = SUBSTRING(@STR, 1, @POS - 1)

  INSERT INTO @RV 
  SELECT @PART

  SELECT @STR = SUBSTRING(@STR, @POS + 1, LEN(@STR) - @POS)
 END

 INSERT INTO @RV
 SELECT @STR

 RETURN
END


这篇关于从数据库表中分割全名的第一个中间名和姓氏的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-11 16:40