姓名一列拆分成两列,进行以下方法

我们这里先给出题和结果吧,该题目是刚才从网上看到的,很多朋友会问这个答案不是有吗?错,如果仔细看差别就大了,不多说了直接进入主题吧:

这就是我们要做到的,我接下来给出三种方法吧:

方法一:

FUNCTION [dbo].[StrSplit](  
        @String nvarchar(MAX),--待分割字符串  
        @分割符 nvarchar(10)=‘,‘,--分割符 
        @0String int=0 --为【1】过滤空字符串 
    )returns @array table(item nvarchar(MAX),ID int)  
    as  
    begin  
        declare @begin int,@end int,@l int,@item nvarchar(MAX) ,@ID int=0;  
        SET @L=LEN(@分割符) 
        set @begin = 1;  
        set @end=charindex(@分割符,@String,@begin);  
        while(@end<>0)  
        begin  
            set @item = substring(@String,@begin,@[email protected]);  
            IF @0String<>1 or len(@item)>0 begin

SET @[email protected]+1;

insert into @array(item,ID) values(@item,@ID);

end;
            set @begin = @[email protected];
            set @end=charindex(@分割符,@String,@begin);  
        end  
        set @item = substring(@String,@begin,len(@String)[email protected]);
        if (len(@item)>0) begin

SET @[email protected]+1;

insert into @array(item,ID) values(@item,@ID);
end; 
        return  
    end

我们一看明显可以看出方法一代码量太大了,不适用由于我就找到了方法二,我对他代码进行组合了可以得到以下方法:

方法二:

select REVERSE(SUBSTRING(REVERSE(name), charindex(‘ ‘,REVERSE(name)) , 6)) ,SUBSTRING (name, charindex(‘ ‘,name),10)  from D

大家看了方法二觉得已经不错了,完全可以了,但是对于爱好sql的人员来说这个还不是我们想好的,代码量还是过长,于是我想了会给出第三种方案,这个方案自己资料组合:

方法三:

select left(name,(charindex(‘ ‘,name)-1)),SUBSTRING (name, charindex(‘ ‘,name),1000)  from D

以上方案是我最终给出来的,如果还有更好的sql,欢迎广大博友们多多指教。

时间: 2024-10-20 08:45:29

姓名一列拆分成两列,进行以下方法的相关文章

sql中一列拆成两列

declare @table table (name nvarchar(4))insert into @tableselect '张三' union allselect '李四' union allselect '王五' union allselect '刘三' union allselect '杨二' union allselect '胡八' union allselect '赵六' --方法1:create table #t (id int identity(1,1),name nvarch

veridata实验举例(5)修改主键上的列值,update操作会被拆分成两条语句

veridata实验举例(5)修改主键上的列值,update操作会被拆分成两条语句 续接"veridata实验举例(4)验证veridata查找出updata.delete操作导致的不同步现象",地址:点击打开链接 环境: Item Source System Target System Platform Red Hat Enterprise Linux Server release 5.4 Red Hat Enterprise Linux Server release 5.4 Hos

分列:将excel单元格的内容拆分为两列

提要:处理excel数据时有时需要把单元格的内容拆分为两列,可能方便外部软件的链接,可能使数据显示更明晰等等,有人说直接剪切加粘贴不就可以了吗,但是有时数据过多,这样处理很不效率,网上搜索的方法说插入某某函数可以实现,但是可能显得比较复杂,其实excel软件本身就带有"分列"的功能. 举例:如EXCEL中有一列的内容如下(其构成方法:型号+中文名称):φ1080×φ910×16花布φ1280×φ1100×20橡胶拍φ300×20红布耐温胶拍φ320×20绿布 ...(假如后面还有) 现

hdu 2098 分拆素数和(一个偶数拆分成两个不同素数和 拆法数量)

传送门: http://acm.hdu.edu.cn/showproblem.php?pid=2098 分拆素数和 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 46434    Accepted Submission(s): 20210 Problem Description 把一个偶数拆成两个不同素数的和,有几种拆法呢? Input

如何拆分PDF,PDF拆分成多个PDF的方法

如何拆分PDF文件呢?我们想要将PDF文件拆分成多个PDF文件需要怎么操作呢?其实方法很简单,只不过需要使用到专业的PDF编辑器,下面小编就使用迅捷PDF编辑器为大家操作一下PDF拆分的方法. 操作软件:迅捷PDF编辑器 具体操作方法如下: 1:首先在浏览器搜索迅捷PDF编辑器,将PDF编辑器安装到自己的电脑中,打开PDF编辑器,将PDF文件添加到软件中. 2:在软件的顶部找到文档,点击文档在下面会出现一个下拉框,在下拉框中可以找到拆分文档. 3:点击拆分文档,在软件中会出现一个弹窗,在弹窗中可

oracle 将‘山东省/济南市/高新区’ 拆分成三列显示出来

SELECT carfullname, REGEXP_SUBSTR(pb_area.carfullname, '[^/]+', 1, 1) province,       REGEXP_SUBSTR(pb_area.carfullname, '[^/]+', 1, 2) city,       REGEXP_SUBSTR(pb_area.carfullname, '[^/]+', 1, 3) areaFROM   pb_area 效果为

【Django数据库】如何将一个表自定义的key列还原成id列作为key

[问题]makemigrations是会要求id输入默认值 例如下表UserVerifyCode,自定义了idUser这个key 修改成如下,去掉idUer的主键属性 使用python manage.py makemigrations,id是新增列,不能为空,所以必须输入默认值 解决办法 Step1:清空表的数据 Step2:上图上选择1方法,输入int(0) Step3: id列我们的都知道,实际上不需要默认值,这时候需要去makemigrations文件夹下,修改合并文件 文件目录 删除de

特殊的三列布局-左右两列宽度固定,中间自适应

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Typ

证明2D-FFT能够拆分成两个1D-FFT

经常可以在文献上看到2D-FFT能够以两个1D-FFT来实现,今天我用MATLAB证明了,的确如此.MATLAB的代码如下 clear all; clc; f=ones(256,256); center_loc = size(f); rd = 2; f(round(center_loc(1)/2)-rd:round(center_loc(1)/2)+rd, round(center_loc(2)/2)-rd:round(center_loc(2)/2)+rd) = 0; figure(1);im