我有如下的数据要处理:小班号 BBB
AB7-3
AB7-8
AB7-32
AB18-15
AB18-2
……我想将字段 小班号 下的“-”之后的数据截取出来放到字段BBB中,但是我水平不够,请各位大牛帮帮忙,先谢谢了!如:
小班号 BBB
AB7-3 3
AB7-8 8
AB7-32 32
AB18-15 15
AB18-2 2
……
AB7-3
AB7-8
AB7-32
AB18-15
AB18-2
……我想将字段 小班号 下的“-”之后的数据截取出来放到字段BBB中,但是我水平不够,请各位大牛帮帮忙,先谢谢了!如:
小班号 BBB
AB7-3 3
AB7-8 8
AB7-32 32
AB18-15 15
AB18-2 2
……
解决方案 »
- 数据库之间更新问?(内详)
- 请教如何将数据库中的新增数据转换为 DML ?
- 谁能帮我写一个带参数的存储过程啊?
- SQL插入记录时,能否在不同库的两张表中,插入相同的记录?
- 加急!!误将数据库中的表更新,如何还原更新前的记录
- 再送分...分组求最大最小值之后,还要取得该最大最小值出现的时间...(问题已获解决,现寻求可读性最优的代码.)
- 怎么实现sqlserver中:select * from A a where a.oid in(str[]);
- 小弟刚学JAVA,有些连接数据库不懂,请大侠指教!在线等候
- 限制SQL Server只让指定的机器连接
- 紧急求助!!!access怎么在where 子句中写外部联接!!!!80分!!
- 求个存储过程~~~~~
- 求个存储过程~~~~~
set BBB=right(小班号,len(小班号)-patindex('%-%',小班号))
-- Author : htl258(Tony)
-- Date : 2010-04-26 17:42:30
-- 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 5.1 <X86> (Build 2600: Service Pack 3)
-- Blog : http://blog.csdn.net/htl258
--------------------------------------------------------------------------
--> 生成测试数据表:tbIF NOT OBJECT_ID('[tb]') IS NULL
DROP TABLE [tb]
GO
CREATE TABLE [tb]([小班号] NVARCHAR(10),[BBB] INT)
INSERT [tb]
SELECT N'AB7-3',23 UNION ALL
SELECT N'AB7-8',NULL UNION ALL
SELECT N'AB7-32',NULL UNION ALL
SELECT N'AB18-15',NULL UNION ALL
SELECT N'AB18-2',NULL
GO
--SELECT * FROM [tb]-->SQL查询如下:update tb set bbb=stuff(小班号,1,charindex('-',小班号),'')
--查询更新结果
select * from tb
/*
小班号 BBB
---------- -----------
AB7-3 3
AB7-8 8
AB7-32 32
AB18-15 15
AB18-2 2(5 行受影响)
*/
Set t.BBB = SUBSTRING([小班号], CHARINDEX('-', [小班号]) + 1, LEN([小班号]) - CHARINDEX('-', [小班号]))
From tb t
Set t.BBB = SUBSTRING([小班号], CHARINDEX('-', [小班号]) + 1, LEN([小班号]) - CHARINDEX('-', [小班号]))
From tb t
渡口村
东升村
东升村
东升村
东升村
东升村
郑村我想将名字叫东升村的对应的DDD中分别有个编号如下:
村名 DDD
渡口村
东升村 1
东升村 2
东升村 3
东升村 4
东升村 5
郑村
update tb set bbb=stuff(小班号,1,charindex('-',小班号),'')
if (OBJECT_ID('tb') is not null) drop table tb
Create table tb
(
banhao VARCHAR(20),
BBB VARCHAR(20) NULL
)
GOINSERT INTO tb
SELECT 'AB7-3',NULL
UNION ALL
SELECT 'AB7-8',NULL
UNION ALL
SELECT 'AB7-32',NULL
UNION ALL
SELECT 'AB18-15',NULL
UNION ALL
SELECT 'AB18-2',NULLSELECT banhao,RIGHT(banhao,LEN(banhao)-CHARINDEX('-',banhao)) BBB FROM tb
-- Author : htl258(Tony)
-- Date : 2010-04-26 17:49:02
-- 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 5.1 <X86> (Build 2600: Service Pack 3)
-- Blog : http://blog.csdn.net/htl258
--------------------------------------------------------------------------
--> 生成测试数据表:tbIF NOT OBJECT_ID('[tb]') IS NULL
DROP TABLE [tb]
GO
CREATE TABLE [tb]([村名] NVARCHAR(10),[DDD] INT)
INSERT [tb]
SELECT N'渡口村',NULL UNION ALL
SELECT N'东升村',NULL UNION ALL
SELECT N'东升村',NULL UNION ALL
SELECT N'东升村',NULL UNION ALL
SELECT N'东升村',NULL UNION ALL
SELECT N'东升村',NULL UNION ALL
SELECT N'郑村',NULL
GO
--SELECT * FROM [tb]-->SQL查询如下:
declare @i int
set @i=0
update tb set DDD=@i,@i=@i+1 where 村名 like '东升%'
select * from tb
/*
村名 DDD
---------- -----------
渡口村 NULL
东升村 1
东升村 2
东升村 3
东升村 4
东升村 5
郑村 NULL(7 行受影响)
*/