牛哥帮帮忙啊!!!!!!!!

羊羊羊123 2010-04-26 05:38:07
我有如下的数据要处理:

小班号 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
……



...全文
75 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
羊羊羊123 2010-04-26
  • 打赏
  • 举报
回复
哈哈,大牛们出马一个顶俩 问题立马解决,结贴
htl258_Tony 2010-04-26
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 ldslove 的回复:]
跟我那个村子无关
[/Quote]
东那个升 2010-04-26
  • 打赏
  • 举报
回复

跟我那个村子无关
htl258_Tony 2010-04-26
  • 打赏
  • 举报
回复
--------------------------------------------------------------------------
-- 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
--------------------------------------------------------------------------
--> 生成测试数据表:tb

IF 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 行受影响)
*/
envykok 2010-04-26
  • 打赏
  • 举报
回复

if (OBJECT_ID('tb') is not null) drop table tb
Create table tb
(
banhao VARCHAR(20),
BBB VARCHAR(20) NULL
)
GO

INSERT 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',NULL

SELECT banhao,RIGHT(banhao,LEN(banhao)-CHARINDEX('-',banhao)) BBB FROM tb


wpeng8218 2010-04-26
  • 打赏
  • 举报
回复

update tb set bbb=stuff(小班号,1,charindex('-',小班号),'')
htl258_Tony 2010-04-26
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 yjjjjs 的回复:]
牛人们啊,刚才那个问题解决了,但是我有碰到一个新问题了,还是解决不了哦,再次请高手出山

村名 DDD
渡口村
东升村
东升村
东升村
东升村
东升村
郑村

我想将名字叫东升村的对应的DDD中分别有个编号

如下:
村名 DDD
渡口村
东升村 1
东升村 2
东升村 3
东升村 4
东升村 5
郑村
[/Quote]4楼的村子
羊羊羊123 2010-04-26
  • 打赏
  • 举报
回复
牛人们啊,刚才那个问题解决了,但是我有碰到一个新问题了,还是解决不了哦,再次请高手出山

村名 DDD
渡口村
东升村
东升村
东升村
东升村
东升村
郑村

我想将名字叫东升村的对应的DDD中分别有个编号

如下:
村名 DDD
渡口村
东升村 1
东升村 2
东升村 3
东升村 4
东升村 5
郑村
yongnan_03 2010-04-26
  • 打赏
  • 举报
回复
Update t
Set t.BBB = SUBSTRING([小班号], CHARINDEX('-', [小班号]) + 1, LEN([小班号]) - CHARINDEX('-', [小班号]))
From tb t
yongnan_03 2010-04-26
  • 打赏
  • 举报
回复
Update t
Set t.BBB = SUBSTRING([小班号], CHARINDEX('-', [小班号]) + 1, LEN([小班号]) - CHARINDEX('-', [小班号]))
From tb t
htl258_Tony 2010-04-26
  • 打赏
  • 举报
回复
--------------------------------------------------------------------------
-- 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
--------------------------------------------------------------------------
--> 生成测试数据表:tb

IF 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 行受影响)
*/
东那个升 2010-04-26
  • 打赏
  • 举报
回复
update tb
set BBB=right(小班号,len(小班号)-patindex('%-%',小班号))
htl258_Tony 2010-04-26
  • 打赏
  • 举报
回复
update tb set bbb=stuff(小班号,1,charindex('-',小班号),'')
羊羊羊123 2010-04-26
  • 打赏
  • 举报
回复
就是高手嘛
东那个升 2010-04-26
  • 打赏
  • 举报
回复
谁是牛哥

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧