34,587
社区成员
发帖
与我相关
我的任务
分享
create table kk(name varchar(100))
insert into kk select '张三*教师*1234567*zhang@123.net'
insert into kk select '小毛*学生*8888888*zhang@126.net'
alter function kkkk(@name varchar(100))
returns varchar(500)
as
begin
declare @sql varchar(500)
set @sql=replace(@name+'*','*',''' columns,''')
return ''''+left(@sql,len(@sql)-2)
end
declare @sql varchar(8000)
select @sql=isnull(@sql+' union select ','select ')+dbo.kkkk(name) from kk
exec(@sql)
[code=SQL]create table tb(col varchar(50))
insert into tb values('姓名*职位*电话*邮箱')
insert into tb values('张三*教师*1234567*zhang@123.net')
go
select
col1 = replace(PARSENAME(replace(replace(col,'.','$'),'*','.'),4),'$','.'),
col2 = replace(PARSENAME(replace(replace(col,'.','$'),'*','.'),3),'$','.'),
col3 = replace(PARSENAME(replace(replace(col,'.','$'),'*','.'),2),'$','.'),
col4 = replace(PARSENAME(replace(replace(col,'.','$'),'*','.'),1),'$','.')
from tb
drop table tb
/*
col1 col2 col3 col4
-------------------------------------
姓名 职位 电话 邮箱
张三 教师 1234567 zhang@123.net
(2 行受影响)
*/
[/code]create table tb(col varchar(50))
insert into tb values('姓名*职位*电话*邮箱')
insert into tb values('张三*教师*1234567*zhang@123.net')
go
select
col1 = replace(PARSENAME(replace(replace(col,'.','$'),'*','.'),4),'$','.'),
col2 = replace(PARSENAME(replace(replace(col,'.','$'),'*','.'),3),'$','.'),
col3 = replace(PARSENAME(replace(replace(col,'.','$'),'*','.'),2),'$','.'),
col4 = replace(PARSENAME(replace(replace(col,'.','$'),'*','.'),1),'$','.')
from tb
drop table tb
/*
col1 col2 col3 col4
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
姓名 职位 电话 邮箱
张三 教师 1234567 zhang@123.net
(2 行受影响)
*/
create table tb(col varchar(64))
insert tb select '张三*教师*1234567*zhang@123.net'
select parsename(replace(replace(col,'.','#'),'*','.'),4)
,parsename(replace(replace(col,'.','#'),'*','.'),3)
,parsename(replace(replace(col,'.','#'),'*','.'),2)
,replace(parsename(replace(replace(col,'.','#'),'*','.'),1),'#','.')
from tb
/*
-------- ------------- ------------- ----------------------------
张三 教师 1234567 zhang@123.net
(1 row(s) affected)
*/
drop table tb
create table tb(col varchar(50))
insert into tb values('姓名*职位*电话*邮箱')
insert into tb values('张三*教师*1234567*zhang@123.net')
go
select
PARSENAME(replace(col,'*','.'),4),
PARSENAME(replace(col,'*','.'),3),
PARSENAME(replace(col,'*','.'),2),
PARSENAME(replace(col,'*','.'),1)
from tb
drop table tb
/*
-------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------
姓名 职位 电话 邮箱
NULL NULL NULL NULL
(2 行受影响)
*/
declare @s varchar(8000)
set @s = '张三*教师*1234567*zhang@123.net '
select @s = replace(@s,'*',''',''')
exec('select '''+@s+'''')
/*
---- ---- ------- --------------
张三 教师 1234567 zhang@123.net
*/
select
PARSENAME(replace(col,'*','.'),4),
PARSENAME(replace(col,'*','.'),3),
PARSENAME(replace(col,'*','.'),2),
PARSENAME(replace(col,'*','.'),1)
from tb
declare @s varchar(8000)
set @s = '姓名*职位*电话*邮箱'
select @s = replace(@s,'*',''',''')
exec('select '''+@s+'''')