【难题!紧急】如何判断一个表中是否存在关键字段满足一些变态条件的记录并对其操作?请各位大虾指教!

hunter0303 2007-01-10 02:13:39
现有问题如下:
在一个表内,有一个索引字段和名称字段,都作为关键字段匹配表中的记录;添加数据时,可以使用相同的索引和名称字段(其他关键字段不同),但是表中不存在索引和名称不匹配的记录(如:两条记录索引相同,名称不相同;或索引不相同,名称相同)。
现在对表中所有的记录进行某些操作:如删除名称字段中的一些字符,结果造成了记录存在索引不相同,名称相同的情况,数据出现了不一致。
请教各位大虾:
1、如何判断一个表中存在上述情况的记录?
2、对索引不相同,但名称相同的记录,要将索引添加到名称后(即:修改成名称+'-'+索引),但是名称长度不允许超过32字符(对于加上索引后长度超过32字符的,需要删除名称的几个字符,然后再添加索引),如何操作实现呢?
注意:索引不超过5个字符!

偶现在对第二个问题,不知如何实现!

...全文
201 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Herb2 2008-05-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 mlb2729 的回复:]
頂...........
[/Quote]
mlb2729 2007-01-10
  • 打赏
  • 举报
回复
頂...........
zheninchangjiang 2007-01-10
  • 打赏
  • 举报
回复
select * from tablename a where exists(select 1 from tablename where namecolumn=a.namecolumn and indexcolumn<>a.indexcolumn)

update a set namecolumn=substring(namecolumn+'-'+indexcolumn,1,(case when len(namecolumn+indexcolumn)>=31 then 32 else len(namecolumn+indexcolumn)+1 end))
from tablename a where exists(select 1 from tablename where namecolumn=a.namecolumn and indexcolumn<>a.indexcolumn)

22,209

社区成员

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

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