求根据电话号码(手机、住址、公司)查找客户GUID(表结构已经给出)

wang520d 2008-06-27 01:10:27
注意:因为客户信息表数据庞大 百万计 所以希望有比较效率的办法才到这里来开贴

USE [RuiTuDB]
GO
/****** 对象: Table [dbo].[T_Guest_Info] 脚本日期: 06/27/2008 13:06:41 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[T_Guest_Info](
[Mustid] [int] IDENTITY(1,1) NOT NULL,
[GID] [nvarchar](50) NOT NULL,
[Mobile] [nvarchar](50) NULL,
[AddressTel] [nvarchar](50) NULL,
[StandbyTel] [nvarchar](50) NULL,
[Name] [nvarchar](50) NULL,
[Sex] [char](10) NULL,
[Province] [nvarchar](50) NULL,
[City] [nvarchar](50) NULL,
[Address] [nvarchar](50) NULL,
[ArrivedCode] [varchar](50) NULL,
[Postalcode] [int] NULL,
[Remarks] [nvarchar](50) NULL,
[IsSell] [char](10) NULL CONSTRAINT [DF_T_Guest_Info_IsSell] DEFAULT ('no'),
[GType] [nvarchar](50) NULL,
[GStatus] [nvarchar](50) NULL,
[GStage] [nvarchar](50) NULL,
[GKind] [nvarchar](50) NULL,
[RegTime] [datetime] NULL CONSTRAINT [DF_T_Guest_Info_RegTime] DEFAULT (getdate()),
[IsDel] [char](10) NULL CONSTRAINT [DF_T_Guest_Info_IsDel] DEFAULT ('no'),
[PerfectTime] [datetime] NULL,
[Operate] [nvarchar](50) NULL,
CONSTRAINT [PK_T_Guest_Info] PRIMARY KEY CLUSTERED
(
[Mustid] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'GID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Guest_Info', @level2type=N'COLUMN',@level2name=N'GID'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'手机' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Guest_Info', @level2type=N'COLUMN',@level2name=N'Mobile'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'住址电话' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Guest_Info', @level2type=N'COLUMN',@level2name=N'AddressTel'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'备用电话' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Guest_Info', @level2type=N'COLUMN',@level2name=N'StandbyTel'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'姓名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Guest_Info', @level2type=N'COLUMN',@level2name=N'Name'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'性别' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Guest_Info', @level2type=N'COLUMN',@level2name=N'Sex'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'省份' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Guest_Info', @level2type=N'COLUMN',@level2name=N'Province'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'城市' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Guest_Info', @level2type=N'COLUMN',@level2name=N'City'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'详细地址' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Guest_Info', @level2type=N'COLUMN',@level2name=N'Address'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'寄达地码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Guest_Info', @level2type=N'COLUMN',@level2name=N'ArrivedCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'邮编' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Guest_Info', @level2type=N'COLUMN',@level2name=N'Postalcode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'备注' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Guest_Info', @level2type=N'COLUMN',@level2name=N'Remarks'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否已销售' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Guest_Info', @level2type=N'COLUMN',@level2name=N'IsSell'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'客户类型(家庭、企业、个人)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Guest_Info', @level2type=N'COLUMN',@level2name=N'GType'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'客户状态(活跃、停顿、流失)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Guest_Info', @level2type=N'COLUMN',@level2name=N'GStatus'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'客户阶段(售前跟踪、合同执行、售后服务等)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Guest_Info', @level2type=N'COLUMN',@level2name=N'GStage'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'客户性质(正式客户、潜在客户、供应商、合作伙伴、核心代理商、地区分销商等)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Guest_Info', @level2type=N'COLUMN',@level2name=N'GKind'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'记录时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Guest_Info', @level2type=N'COLUMN',@level2name=N'RegTime'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否删除yes是no否' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Guest_Info', @level2type=N'COLUMN',@level2name=N'IsDel'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'修改时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Guest_Info', @level2type=N'COLUMN',@level2name=N'PerfectTime'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'操作人' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Guest_Info', @level2type=N'COLUMN',@level2name=N'Operate'

...全文
328 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
nzperfect 2008-06-27
  • 打赏
  • 举报
回复
咦,楼主顶楼没有这三个字段啊?
nzperfect 2008-06-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wang520d 的回复:]
表1
gid tel1 tel2 tel3
20081234 15910600407 0104781050 15847323223
20081234 15910600403 0104781051 15847323227

得到结果:根据三个电话号码字段取得gid
比如输入:15910600407或者0104781050或者15847323223中的任何一个都能得到20081234

注意:因为客户信息表数据庞大 百万计 所以希望有比较效率的办法才到这里来开贴


[/Quote]

tel1,tel2,tel3都要单独加索引.
nzperfect 2008-06-27
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wang520d 的回复:]
引用 8 楼 HEROWANG 的回复:
select gid
from tb
where tel1=@tel or tel2=@tel or tel3 =@tel
在这几个列上建立索引之后,需要多长时间呢?

用OR建索引还有用么?
[/Quote]

当然有用。
  • 打赏
  • 举报
回复
把电话这几个字段取出来,分别建立一张表吧,这样的话,可能好一点吧。
这样的话查询时调用的页面能少一点吧

不知道有没有用。
wang520d 2008-06-27
  • 打赏
  • 举报
回复
或者我该改改我的表设计 ?高手给支支招啊。。。
当电话打进来的时候我都必须去判断这个电话是不是存在在系统里面了也就是用户是不是存在
而电话高峰期电话很多。如果这个效率处理不好,整个系统就很容易崩溃,服务器也受不了。。
wang520d 2008-06-27
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 HEROWANG 的回复:]
能不能分别查询然后再union 呢?
declare @tel nvarchar(11)
set @tel=N'0104781050'
select gid
from tb
where tel1=@tel
union all
select gid
from tb
where tel2=@tel
union all
select gid
from tb
where tel3=@tel

再找找高手来吧,对这方面没有研究过。不好意思了
[/Quote]

已经很感谢了 至少你的分开差能对简历的索引有用
  • 打赏
  • 举报
回复
能不能分别查询然后再union 呢?
declare @tel nvarchar(11)
set @tel=N'0104781050'
select gid
from tb
where tel1=@tel
union all
select gid
from tb
where tel2=@tel
union all
select gid
from tb
where tel3=@tel

再找找高手来吧,对这方面没有研究过。不好意思了
wang520d 2008-06-27
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 HEROWANG 的回复:]
select gid
from tb
where tel1=@tel or tel2=@tel or tel3 =@tel
在这几个列上建立索引之后,需要多长时间呢?
[/Quote]
用OR建索引还有用么?
  • 打赏
  • 举报
回复
select gid
from tb
where tel1=@tel or tel2=@tel or tel3 =@tel
在这几个列上建立索引之后,需要多长时间呢?
wang520d 2008-06-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wang520d 的回复:]
表1
gid tel1 tel2 tel3
20081234 15910600407 0104781050 15847323223
20081234 15910600403 0104781051 15847323227

得到结果:根据三个电话号码字段取得gid
比如输入:15910600407或者0104781050或者15847323223中的任何一个都能得到20081234

注意:因为客户信息表数据庞大 百万计 所以希望有比较效率的办法才到这里来开贴


[/Quote]

修改为 第二条记录的GID写错了 GID是唯一的
表1
gid tel1 tel2 tel3
20081234 15910600407 0104781050 15847323223
20081235 15910600403 0104781051 15847323227

得到结果:根据三个电话号码字段取得gid
比如输入:15910600407或者0104781050或者15847323223中的任何一个都能得到20081234

注意:因为客户信息表数据庞大 百万计 所以希望有比较效率的办法才到这里来开贴
wang520d 2008-06-27
  • 打赏
  • 举报
回复
表1
gid tel1 tel2 tel3
20081234 15910600407 0104781050 15847323223
20081234 15910600403 0104781051 15847323227

得到结果:根据三个电话号码字段取得gid
比如输入:15910600407或者0104781050或者15847323223中的任何一个都能得到20081234

注意:因为客户信息表数据庞大 百万计 所以希望有比较效率的办法才到这里来开贴

nzperfect 2008-06-27
  • 打赏
  • 举报
回复
charindex 不走索引
lff642 2008-06-27
  • 打赏
  • 举报
回复
使用charindex来试试.
  • 打赏
  • 举报
回复
好长啊,头有点晕了,最好把数据贴出来吧
nzperfect 2008-06-27
  • 打赏
  • 举报
回复
莫非楼主要的全是like '%xxx%' ?
nzperfect 2008-06-27
  • 打赏
  • 举报
回复
请楼主写sql

34,838

社区成员

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

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