例如有如下字段
name
三星电脑红色
海尔电脑黑色A货
索尼电脑灰色B货我想拆分这个字段,分别为
name1 name2
三星电脑 红色
海尔电脑 黑色A货
索尼电脑 灰色B货就是把电脑前面的内容,包括电脑两个字放到name1字段,后面部份放到name2字段
name
三星电脑红色
海尔电脑黑色A货
索尼电脑灰色B货我想拆分这个字段,分别为
name1 name2
三星电脑 红色
海尔电脑 黑色A货
索尼电脑 灰色B货就是把电脑前面的内容,包括电脑两个字放到name1字段,后面部份放到name2字段
if object_id('[tb]') is not null drop table [tb]
go
create table [tb]([name] varchar(15))
insert [tb]
select '三星电脑红色' union all
select '海尔电脑黑色A货' union all
select '索尼电脑灰色B货'
---查询---
select
left(name,charindex('电脑',name)+1) as name1,
right(name,len(name)-charindex('电脑',name)-1) as name2
from
tb---结果---
name1 name2
--------------- ---------------
三星电脑 红色
海尔电脑 黑色A货
索尼电脑 灰色B货(3 行受影响)
--> 测试数据:[TB]
if object_id('[TB]') is not null drop table [TB]
create table [TB]([name] varchar(15))
insert [TB]
select '三星电脑红色' union all
select '海尔电脑黑色A货' union all
select '索尼电脑灰色B货'select * from [TB]SELECT [name1]=LEFT([name],4),[name2]=substring([name],4,LEN([name])) from [TB]
/*
name1 name2
-------- ---------------
三星电脑 脑红色
海尔电脑 脑黑色A货
索尼电脑 脑灰色B货(3 行受影响)*/
怎么你要新建一个tb 表呢?
而且为什么我直接用下面这语句,发现不行的呢?
select
left(name,charindex('电脑',name)+1) as name1,
right(name,len(name)-charindex('电脑',name)-1) as name2
from
text
其中text 是我自己按照发贴人的要求建立的表:
即:name varchar 15