`
commando
  • 浏览: 77847 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

几条SQL

SQL 
阅读更多

几条SQL

 

1. 字符串截取

// 将field2字段的前两位赋值给field1

update tableName t set t.field1= substr(t.field2,1,2);

 

 

 2. 两个表间的更新 

 

// 由 table2 表中的 field2 列的值来更新 table1 表的 field2 列

update table1 t1
set t1.field2 = (select t2.field2
from table2 t2
where t1. filed1 = t2.field1)

where exists (select 1 from table2 t2 where t1.field1=t2.field1); // table2 查询后需有值

 

 

3.  字符串转日期

 

// 日期转字符串则用 to_char

select * from tableName t where t.timeFieldName!= to_date('2010-5-13','yy-mm-dd')

 

 

4.  删除重复记录

 

/* 
role_menu 为“角色菜单”表,一个角色可以有多个菜单
auth_role_id 为角色id
system_menu_id 为菜单id

由于历史原因,可能一个角色对应某个菜单还有多条记录,需要清理
*/


delete from role_menu t
where system_menu_id in 


(select   system_menu_id  

from   role_menu 

where t.auth_role_id = '0e3bf99332d44afcbed01253565773f9' 

group  by   system_menu_id 

having  count(system_menu_id) > 1)

// 只保留一条

and rowid not in 

(select min(rowid) from role_menu

where t.auth_role_id = '0e3bf99332d44afcbed01253565773f9' 

group by system_menu_id 

having count(system_menu_id )>1)

 

 

 

 

 

2
2
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics