SQL字段处理 || 字符函数 || 转换函数 || DECODE NVL

 

CREATE TABLE RM    创建表RM

ALTER TABLE RM ADD(ID VARCHAR(20),AGE VARCHAR(20),SALARY VARCHAR(20))   增加三个字段  varchar(20):可变长度字符串 最大长度为20

ALTER TABLE RM RENAME COLUMN AGE TO WEIGHT        把AGE字段改为WEIGHT

ALTER TABLE RM DROP COLUMN WEIGHT                        把WEIGHT字段删除

ALTER TABLE RM RENAME TO DM                                    把表名RM改为DM

 

DROP TABLE DM        删除表(表结构和所有记录)

TRUNCATE TABLE DM    删除所有记录保留表结构

 

_________________________________________________________________________                                                       

字符函数       

select initcap(name) from temp    让表temp中name字段的所有记录首字母大写    

select concat('a','b') from dual = select 'a'||'b' from dual   字符串连接    'ab'

select substr('20161109',1,4)from dual         从第1位开始截4位    '2016'

select substr('abcde',length('abcde')-3) from dual    从第5-3位截到最后    'bcde'

select substr('abcde',-3,3) from dual      从倒数第3位截到第3位    'c'

substr 0号索引和1号索引都是指第一个位置

select replace(name,'L','N')     将name字段对应记录里的所有'L'变为'N'

select instr('HELLO WORLD','OR') from dual     得到字符串‘OR’首字母O对应的位置 8

select lpad('smith',10,'*') from dual     左填充成10位      '*****smith'

select rpad('smith',10,'*') from dual     右填充成10位      'smith*****'

select trim('   LR  ') from dual   去除首尾空格   'LR'

 

____________________________________________________________________

转换函数

select to_char(sysdate,'yyyy') from dual '2016'

select to_char(sysdate,'yyyymmdd')  from dual '20161109'

select to_char(sysdate,'yyyy-mm-dd') from dual  '2016-11-09'

 

select to_number('13') + to_number('14') from dual   27

select to_date('20161109','yyyymmdd') from dual    2016/11/9

______________________________________________________________________

DECODE 

NVL

1.现表temp有两个字段month_id和sale,若sale=1000时翻译为D,=2000时翻译为C,=3000时翻译为B,=4000时翻译为A,其他值翻译为Other。SQL如下:

Select month_id , decode (sale,1000,'D',2000,'C',3000,'B',4000,'A',’Other’) sale from temp

 

2.Select month_id ,decode(sale, null,‘---’,sale) sale from temp

字段sale为null时返回---,不为null时返回本身。

 

3. nvl(expr1,expr2)  expr1为空返回expr2,不为空返回本身。  去除表中null 

   = decode (expr1,null,expr2,expr1)

 decode(expr1,0,null,expr1) expr1为0时返回null,否则返回本身。 将表中0置为null

 

 
 

insert into sg_t_y_osciga_prodlet_o select * from sg_t_y_osciga_prodlet_o_bak   同库同表结构记录全部导入

 

posted @ 2016-11-04 00:24  sniperlr  阅读(381)  评论(0)    收藏  举报