编程题(待定)
2017-02-13 23:25
92 查看
总有一些编程题经常会问到,在此做一个总结
单例模式
昨天当前时刻
数据库分页的写法
删除数据库重复记录的方法
单例模式
//饿汉式 public class Singleton { private static Singleton instance = new Singleton(); private Singleton (){} public static Singleton getInstance() { return instance; } } //懒汉式 延迟加载特性 public class Singleton { private static Singleton instance; private Singleton (){} public static synchronized Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; } }
昨天当前时刻
public class test { public static void main(String[] args) { Calendar cal = Calendar.getInstance(); cal.add(Calendar.DATE, -1); System.out.println(cal.getTime()); } }
数据库分页的写法
* sql:可以是单表的查询语句,也可以是多表的联合查询语句 * firstIndex:其实的索引 * pageSize:每页显示的记录数 */ select o.* from (sql) o limit firstIndex,pageSize * firstIndex:起始索引 * pageSize:每页显示的数量 * orderColumn:排序的字段名 * sql:可以是简单的单表查询语句,也可以是复杂的多表联合查询语句 */ select top pageSize o.* from (select row_number() over(order by orderColumn) as rownumber,* from(sql) as o where rownumber>firstIndex; * firstIndex:起始索引 * pageSize:每页显示的数量 * sql:可以是简单的单表查询语句,也可以是复杂的多表联合查询语句 */ select * from(select a.*,ROWNUM rn from(sql) a where ROWNUM<=(firstIndex+pageSize)) where rn>firstIndex
删除数据库重复记录的方法
有两个意义上的重复记录, 一是完全重复的记录,也即所有字段均重复的记录, 二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。 1、对于第一种重复,比较容易解决,使用 select distinct * from tableName 这样就可以得到无重复记录的结果集。 然后通过临时表实现对数据的维护。 select distinct * into #Tmp from tableName drop table tableName select * into tableName from #Tmp drop table #Tmp #Tmp为什么系统参数,tableName为要操作的表名。 2、第二类重复问题通常要求保留重复记录中的第一条记录,操作方法如下: 假设有重复的字段为Name,Address,要求得到这两个字段唯一的结果集 select identity(int,1,1) as autoID, * into #Tmp from tableName select min(autoID) as autoID into #Tmp2 from #Tmp group by Name,autoID select * from #Tmp where autoID in(select autoID from #tmp2) 最后一个select即得到了Name,Address不重复的结果集(但多了一个autoID字段,实际写时可以写在select子句中省去此列)。
用SQL语句,删除掉重复项只保留一条 在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢 1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) 2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录 delete from people where peopleName in (select peopleName from people group by peopleName having count(peopleName) > 1) and peopleId not in (select min(peopleId) from people group by peopleName having count(peopleName)>1) 3、查找表中多余的重复记录(多个字段) select * from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) 4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录 delete from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1) 5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录 select * from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1) 6.消除一个字段的左边的第一位: update tableName set [Title]=Right([Title],(len([Title])-1)) where Title like '村%' 7.消除一个字段的右边的第一位: update tableName set [Title]=left([Title],(len([Title])-1)) where Title like '%村' 8.假删除表中多余的重复记录(多个字段),不包含rowid最小的记录 update vitae set ispass=-1 where peopleId in (select peopleId from vitae group by peopleId
相关文章推荐
- 一道简单的编程题,不过您做对了吗?
- 笔试常见的“阶乘”编程题,你写对了么?
- 【c笔记】一个很好的编程题
- 比较经典的java基础编程题代码...
- 一道简单的编程题,不过您做对了吗?
- Hulu笔试编程题--大整数加法
- 笔试编程题一道
- 每天一道编程题------------------将一个句子中单词编程倒序
- 最后两个编程题
- 【Stanford Machine Learning Open Course】6. week2编程题解
- 2013年用友校招编程题:用1、2、2、3、4、5这六个数字,用java写一个程序,打印出所有不同的排列
- 趋势科技一道编程题
- 《C Primer Plus》第8章 编程题 第8题
- 【原创】#面试编程题#将数组里的负数排在数组的前面
- 瑞恩面试编程题:找出一个目录下所有的文件
- 一道c++小编程题,
- 数据结构--编程题
- 物料失效验证的待定事务
- 最新JAVA编程题全集(50题及答案)
- java编程题