如下:
要求:
1.查出用户信息表(t_users)中的所有重复记录(姓名、身份证号、手机号、座机号任一项重复都视为重复)。
2.结合用户信息表(t_users)和用户状态表(t_state),把重复记录在t_state表中对应的信息整合到每组重复记录中uid最小的账号下,并把此最小账号对应用户状态(state)改为T,每组重复中其它账号对应的用户状态(state)改为F(即:把t_state表中每组重复记录的uid都改为最小的uid,而对应的状态前者为T,后者为F)。
注意:用T-SQL存储过程来完成。
要求:
1.查出用户信息表(t_users)中的所有重复记录(姓名、身份证号、手机号、座机号任一项重复都视为重复)。
2.结合用户信息表(t_users)和用户状态表(t_state),把重复记录在t_state表中对应的信息整合到每组重复记录中uid最小的账号下,并把此最小账号对应用户状态(state)改为T,每组重复中其它账号对应的用户状态(state)改为F(即:把t_state表中每组重复记录的uid都改为最小的uid,而对应的状态前者为T,后者为F)。
注意:用T-SQL存储过程来完成。
解决方案 »
- 修改sql语句
- 关于SQL Server 2000安全配置问题(急)
- 请各位数据库高手都来看看
- 我这个句为什么通不过?? DECLARE @i sysname set @i = 'TableName' select * from @i
- “触发器”有什么作用?
- 急急急。sql server2000数据库企业版,的一个表经常死机。
- 我刚刚进入程序员的行列有几个问题希望各位大侠小侠帮帮忙谢谢了
- Sql server中TIMESTAMP類型有什麼用途?
- :谁用过Microsoft的DataGrid control 6.0(OLEDB)和Adodc Control 6.0(OLEDB),请教几个问题!
- 请问各位高手,在存储过程中如何使用临时表?(解决立刻给分)
- 如何利用sql 语句上传文件到主机
- sql2008高手进来指点
select ta.* from
t_users ta,
(select 姓名,身份证号,手机号,座机号
from t_users
group by 姓名,身份证号,手机号,座机号
having count(*)>1) tb
where ta.姓名=tb.姓名 and ta.身份证号=tb.身份证号
and ta.手机号=tb.手机号 and ta.座机号=tb.座机号
update t_state
set state=T
where uid in
(select min(uid) from t_users
group by 姓名,身份证号,手机号,座机号
having count(*)>1)--替换为F
update t_state
set state=F
where uid not in
(select min(uid) from t_users
group by 姓名,身份证号,手机号,座机号
having count(*)>1)
and in
(
select uid from
t_users ta,
(select 姓名,身份证号,手机号,座机号
from t_users
group by 姓名,身份证号,手机号,座机号
having count(*)>1) tb
where ta.姓名=tb.姓名 and ta.身份证号=tb.身份证号
and ta.手机号=tb.手机号 and ta.座机号=tb.座机号
)
t_users表:http://hi.csdn.net/space-8592206-do-album-picid-863334-goto-down.html
t_state表:http://hi.csdn.net/space-8592206-do-album-picid-863333-goto-down.html