一、oracle将一个表中的字段值更新到另一个表的字段中
1.update a,b set a.field1=b.field1,a.field2=b.field2 where a.id=b.id(不支持oracle(已测试),支持mysql(网上资料))
oracle:
2.update a set (a.field1,a.field2)=(selec b.field1,b.field2 from B where b.id=a. id) where exists (selec b.field1,b.field2 from B where b.id=a. id)
3.update (select a.field1,a.field2, b.field1field3,b.field2 field4 from a,b where a.id=b.id) t set t.field1=t.field3,t.field2=field4
二、左补0函数(lpad)
1.select lpad('1',5,'0') from dual
2.select to_char(1,'fm00000') from dual; --返回“00001”
select to_char(1,'00000') from dual; --返回“ 00001”(返回值前有空格,若无fm,则会在返回串中带有"+"(默认省略)或"-")
select to_char(-1,'00000') from dual; --返回“-00001”
三、获取指定日期后若干天后的日期列表
四、替换空值(nvl)
五、字符串位置查找(inStr)
参数分析:
string1
源字符串,要在此字符串中查找。
string2
要在string1中查找的字符串.
start_position
代表string1 的哪个位置开始查找。此参数可选,如果省略默认为1. 字符串索引从1开始。如果此参数为正,从左到右开始检索,如果此参数为负,从右到左检索,返回要查找的字符串在源字符串中的开始索引。
nth_appearance
代表要查找第几次出现的string2. 此参数可选,如果省略,默认为 1.如果为负数系统会报错。
示例:
SELECT instr('syranmo','s') FROM dual; -- 返回 1
SELECT instr('syranmo','ra',1) FROM dual; -- 返回 3
SELECT instr('syran mo','a',1,2) FROM dual; -- 返回 0(第二次出现a的位置)
六、去掉重复数据,保留最后一条
七、从数据库随机读取数据:
Access:
select top n * from table order by rnd(id)‘id为数据库的自动编号字段
Sql Server:
select top n * from table order by newid()
MySQL:
SELECT * FROM table order by rand() limit 20;
Oracle: