oralce 经典习题系列

oracle 函数

The problem

1.使用数学函数进行如下运算 (1)计算18除以5的商和余数。 (2)将弧度值0.125转换为角度值。 (3)计算9的4次方值。 (4)保留浮点值3.14159小数点后面2位。 2.使用字符串函数进行如下运算 (1)分别计算字符串“Hello World!”和“University”的长度。 (2)从字符串“Nice to meet you!”中获取子字符串“meet”。 (3)重复输出3次字符串“Cheer!”。 (4)将字符串“voodoo”逆序输出。 (5)4个字符串“Oracle”“not”“is”“great”,按顺序排列,从中选择1、3和4位置处的字符串组成新的字符串。 3.使用日期和时间函数进行如下运算 (1)计算当前日期是一年的第几周。 (2)计算当前日期是一周中的第几个工作日。 (3)计算“1929-02-14”与当前日期之间相差的年份。 (4)按“97 Oct 4th Saturday”格式输出当前日期。 (5)从当前日期时间值中获取时间值,并将其转换为秒值。

The answer

1.1代码实现select 18/5,mod(18/5) from dual;。 1.2 弧度变角度 (180/π)×弧度 代码实现select (180/3.14)*0.125 from dual 1.3 代码实现select power(9,4) from dual; 1.4 代码实现 select trunc(3.14159,2) from dual;


2.1 代码实现sleect length('Hello World!',length('University') from dual; 2.2 代码实现select substr( 'Nice to meet you !',instr('Nice to meet you!','m'),4) 2.3 代码实现select lpad('Cheer!',18,'Cheer!') from duol; 2.4 代码实现select reverse('voodoo') from dual; 2.5 代码实现select replace('Oracle'||'not'||'is'||'great','not','') from dual;


3.1 代码实现select to_char(sysdate,'ww') from dual; 3.2 代码实现select to_char(sysdate,'d') from dual; 3.3 代码实现select extract(year from sysdate) -substr('1929-02-14',1,4) from dual; 3.4 代码实现select to_char(sysdate,'yy','nls_date_language =American')||' '||' '||to_char(sysdate,'month','nls_date_language =American') ||' '||' '||to_char(sysdate,'dd','nls_date_language =American')||'th '||' '||to_char(sysdate,'Day','nls_date_language =American') as AmericanDate from dual; 3.5 如果理解为当天所有时间已发生时间转化为秒 代码实现select to_number(to_char(sysdate,'hh'))*60*60 +to_number(to_char(sysdate,'mm'))*60 + to_number(to_char(sysdate,'ss')) from dual;