日期:2014-05-17  浏览次数:20527 次

并把数据分割,只取第二个‘-’以后的数据 ,分别插入对应列中求方法!!!!!!!!!!!!!
表名 tb  列名 ED 下面是数据

ED                    uc
asd-ew-we-tr
gf-ewr-we-fh
gd-fe-we
gr-gr-gr


想查找ED下的数据, 并把数据分割,只取第二个‘-’以后的数据 ,分别插入uc列中 求方法!!!!!!!!!!!!
------最佳解决方案--------------------
update TB set uc=SUBSTRING(ED,charindex('-',ED)+1,len(ED)-charindex('-',ED)+1)
------其他解决方案--------------------
--DECLARE ed VARCHAR(128)
 --SET ed='asd-ew-we-tr'
 --如果uc是别的表的列:
 INSERT INTO xx (uc)
 SELECT SUBSTRING(ed,CHARINDEX('-',ed,PATINDEX('%-%',ed))+1,LEN(ed)-CHARINDEX('-',ed,PATINDEX('%-%',ed)))
 FROM ed
 
 --如果uc在用一个表:
 UPDATE TB
 SET uc=SUBSTRING(ed,CHARINDEX('-',ed,PATINDEX('%-%',ed))+1,LEN(ed)-CHARINDEX('-',ed,PATINDEX('%-%',ed)))
 
------其他解决方案--------------------
楼上的都是从第一个'-'取数吧?楼主要从第二个
------其他解决方案--------------------
--以下是测试数据
use tempdb
go
if not OBJECT_ID('tempdb..#tb') IS NULL
drop table #tb
CREATE TABLE #tb(ED varchar(50),uc varchar(50) null)
insert into #tb(ED)
select 'asd-ew-we-tr' union all
select 'gf-ewr-we-fh' union all
select 'gd-fe-we' union all
select 'gr-gr-gr'
--以下是插入语句 -将#tb换掉即可
update #tb
 set
 uc=SUBSTRING(ED,CHARINDEX('-',ED,CHARINDEX('-',ED)+1)+1,lEN(ED)-CHARINDEX('-',ED,CHARINDEX('-',ED)+1)+1)
 --以下是查看效果
select * from #tb
/*
ED uc
asd-ew-we-tr we-tr
gf-ewr-we-fh we-fh
gd-fe-we we
gr-gr-gr gr
*/

------其他解决方案--------------------
ED                    uc
asd-ew-we-tr
gf-ewr-we-fh
gd-fe-we
gr-gr-gr

------------
你的题目,我也不懂。

但是,你首先要学会,取得

we-tr
we-fh

网络有例子,你如果要做SQL开发,就要专心全面学习。
你问了也没用,你自己没去研究。

然后,你怎么把

一列插入 另一列。

========================================================
由这些例子,你还需要复习哪些内容?
1.对字符串的处理
2.对数据插入,查询等

你没复习这些,楼上这些人给你答案,你以后还是不懂。
------其他解决方案--------------------
----------------------------
-- Author  :TravyLee(物是人非事事休,欲语泪先流!)
-- Date    :2012-11-20 09:07:19
-- Version:
--      Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86) 
-- Jul  9 2008 14:43:34 
-- Copyright (c) 1988-2008 Microsoft Corporation
-- Developer Edition on Windows NT 6.1 <X86> (Build 7601: Service Pack 1)
--
----------------------------
--> 测试数据:[test]
if object_id('[test]') is not null drop table [test]
go 
create table [test]([ED] varchar(12),[uc] varchar(10))
insert [test]
select 'asd-ew-we-tr',null union all