查询出一列中的一部分?

常飞梦
博客专家认证
2006-08-30 11:29:00
有这样一个表:
地区   游戏
山西联通 话费大本营855832
山西联通 祝福加工场855834
重庆联通 话费大本营1937591
重庆联通 话费大本营1937591
山东小灵通 测名字1955836
山东小灵通 整蛊王1955871
山东小灵通    快乐8(模拟)855698


查询结成这样:
地区   游戏
山西联通 855832
山西联通 855834
重庆联通 1937591
重庆联通 1937591
山东小灵通 1955836
山东小灵通 1955871
山东小灵通 855698

也就是说我想的游戏中上子号挑出来成为一新列!
请问谁知道怎么查?
谢谢!

...全文
101 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Well 2006-08-30
  • 打赏
  • 举报
回复
--建立测试环境
create table LocGame
(
Location nvarchar(200),
Game nvarchar(2000)
)

insert into LocGame
select '山西联通','话费大本营855832' union
select '山西联通','祝福加工场855834' union
select '重庆联通','话费大本营1937591' union
select '重庆联通','话费大本营1937591' union
select '山东小灵通','测名字1955836' union
select '山东小灵通','整蛊王1955871' union
select '山东小灵通','快乐8(模拟)855698'

--测试
select *
,left(REVERSE(Game),patindex('%[^0-9]%',REVERSE(Game))-1) NewPhone
from LocGame

--显示结果
/*
Location Game NewPhone
山东小灵通 测名字1955836 6385591
山东小灵通 快乐8(模拟)855698 896558
山东小灵通 整蛊王1955871 1785591
山西联通 话费大本营855832 238558
山西联通 祝福加工场855834 438558
重庆联通 话费大本营1937591 1957391
*/
--删除环境
drop table LocGame
Jane_64 2006-08-30
  • 打赏
  • 举报
回复
declare @t1 table([地区] varchar(20),[游戏] varchar(100))
insert @t1
select '山西联通','话费大本营855832' union
select '山西联通','祝福加工场855834' union
select '重庆联通','话费大本营1937591' union
select '重庆联通','话费大本营1937591' union
select '山东小灵通','测名字1955836' union
select '山东小灵通','整蛊王1955871' union
select '山东小灵通','快乐8(模拟)855698'

declare @t2 table(id int,Code varchar(10))
insert @t2
select 1,'855832' union
select 2,'855834' union
select 3,'1937591' union
select 4,'1955836' union
select 5,'1955871' union
select 6,'855698'



select 地区,Code as 游戏
from @t1,@t2
where charindex(Code,游戏)>0
常飞梦 2006-08-30
  • 打赏
  • 举报
回复
再加上一句,这些号码都在一个表里有的
如:表Code
id Code
1 855832
2 855834
3 1937591
.....


34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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