SQL数据库,如何比较需要查询的所有记录某个字段的前五个字符串是否相同?

如题所述

Left(字段名,5) as 新字段名
这样表示哪个字段就好,给条件就给Left(字段名,5)表达式条件啊,这个很简单啊,不要想得太复杂了,一定要主义字段格式哦,格式不对要转换函数转换一下
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-31
select * from table1 a
where exists(select 1 from table1 where substring(colname,1,5)<>substring(a.colname,1,5));追问

你好,我初学者,本意是想给20000条信息去重,我想写个循环,里面把每次第一条记录一个字段的,前五个字符做基准,和其他所有记录该个字段的前五个字符作比较;然后复制第一条记录到新的表,把原来表里这次循环的结果全部删除,循环结束后,原表信息全部被删除了,而新的表里有了至少五个字符内不重复的信息。我用来你提供的这条,发现运行后是查询出所有结果,现在还不会用,能再详细指教一下么

追答

不需要循环,分2步:
1.create table tmp_table as
select min( 主键列) 主键列 from table1 group by substring(colname,1,5);
2.insert into new_table
select * from old_table a
where exists(select 1 from tmp_table where 主键列=主键列);

本回答被提问者采纳
第2个回答  2013-05-31
where substring(fieldname,1,5)='00000'