飞天猫的博客|Fmore.net

Tag: sql 函数 replace rtrim

SQL常用语句和函数

by raio on 十二.01, 2008, under 编程小技 [代码]

1.求字持串的长度LENGTH
您可用LENGTH函数求字符串的长度。LENGTH返回一个数值。该值等于参数中的字符个数。
例:使用LENGTH函数
     SQL>select Last_Name, length(Last_Name) from customer order by LastName;

2.使用SUBSTR函数从字符串中提取子串
语法:
     SUBSTR函数的语法如下:
     SUBSTR(string, string charcter, number of charcters)
     变量定义如下:
     string为字符列或字符串表达式
  string charcter为子串的起始位置
  number of charcters为返回字符的个数c
例:说明了怎样使用SUBSTR函数取得教师的姓的前四个字符
     SQL>select last_Name, substr(Last_Name, 1, 4) from instector order by Last_Name
例:在SUBSTR函数中使用LENGTH函数(取后三个字符)
     5Qt.>select last_Name, substr(Last_Name, Length(Last_Name) – 2, 3) from instector order by Last_Name

3.在字符串中查找模式
例:使用LIKE运算符
     SQL>column description format a40 word_wrapped
     SQL>column title format a35
     SQL>select Title, Description from Course where Description like ‘%thory%’ or Description like ‘%theories%’;

4.替换字符串的一部分
   经常遇到的数据操纵任务是在特定的列中将数据由一种模式转换成另一种模式。
   假设您希望在Course表中改变课程说明,将说明中的字seminar用字discussion替代.那么您可用oracle提供的函数REPLACE,该函数使得某列的字符串能被另一字符串代替。
语法:
     REPLACE函数的语法如下:
     REPLACE(string, existion_string, [replacement_string])
     变量定义如下:
     string为字符表达式c
     existion_string为已存在的字符串。
     replacement_string为用来替代的可选字符串。
例:使用REPLACE函数
  显示了在Course表中如何使用REPLACE来改变课程名称(title):首先使用查询显示当前课程名称,UPDATE语句中使用REPLACE函数将SEMINAR改变成DISCUSSION,另一查询显示了UPDATE语句的效果。
     SQL>update Course set Title = replace(Title, ‘SEMINAR’, "DISCUSSION’);
注:如果在REPLACE函数中您没有指明用什么字符串去替代,则列中的原字符串将被删除。

5.删除字符串的空格
  如果字符串列中包含前导或尾部空格,按某指定值对列进行查询,很可能返回错误结果。
LTRIM和RTRIM。

6.LPAD左填充函数
使用LPAD对字符串进行左填充。
语法:
     LPAD(string, n, pad_string);
     变量定义如下:
  string为需左填充的字符串直接值或字符申列。
  n为LPAD返回的字符串长度。
  pad_string为左填充到string的字符串。
  SQL>select lpad(my_col, 20) from test_trim;
  使用LENGTH函数人微言轻LPAD函数的参数:
  SQL>select lpad(my_col, length(my_col) + 8, ‘you say’) from test_trim;

7.改变字符串的大小写
  oracle提供了三个改变字符串大小写的函数:
  INITCAP转换每个字的第一个字符为大写
  LOWER转换所有字符为小写
  UPPER转换所有字符为人写

8.使用DECODE函数(值转换函数)转换字符串
语法
     DECODE的语法是:
     DECODE(expression, value1, returned_value1, … valueN, returned_valueN, [default_returned_value]
变量定义如下:
  Dexpression为合法的oracle表达式。
  valueN为此expression可能取的值:
  returned_valueN为expression等于valueN时DECODE的返回值。
  default_returned_value为可选项,它是expression不等于任何valueN时DECODE的返回值。
  SQL>select Schedult_id, Day, decode(Day, 1, ‘sun’, 2, ‘mon’, 3, ‘tue’, 4, ‘wed’, 5, ‘thu’, 6, ‘fri’, 7, ‘sat’)
          from Schedult_Type_Details order by Schedult_id, Day;

9.转换字符串为ASCII值
  SQL>select Last_Name, SCAII(Last_Name) from Instructor order by Last_Name;

10.当前日期和时间:SYSDATE

11.转换日期为字符串
语法:
     T0_CHAR函数的格式如下:
     TO_CHAR(date_value,format)
  SQL>select Last_Name, First_Name, to_char(Hire_Date, "MONTH DD, YYYY’) H_DATE from Employee order by Hire_Date;
  在SUBSTR函数中嵌入to_char函数
  SQL>select Last_Name, First_Name, substr(to_char(Hire_date, ‘MON), 1, 1) the_fist_letter_of_the_month from Employee;

12.转换字符串为日期
语法:
  to_date(string_value, date_format);
  SQL>select SYSDATE, to_date(’07-04-1976′, ‘MM-DD-YYYY’) from dual;

13.日期和时间
  在to_char函数中使用时间格式:
  SQL>select Employee_id, (to_char(time, clocked_in, ‘HH:MM:SS’) Time_Clocked_In from Time_Clock;

14.计算两个日期的差值
  SQL>select sysdate + 7 from dual;

15.在Insert\Update等操作时,数字会自动转换为字符串。数字字段可以用to_char转换为串。

16.格式化数值字段
  select to_char(Additional_Fees, ’9,999.99′) from Course;
  货币符号:
  select to_char(Additional_Fees, ‘¥9,999.99′) from Course;
  科学计数法:
  select to_char(Additional_Fees, ’9.9999EEEE’) from Course;

17.将字符串转换成数字
  to_number是to_char的逆运算。
  update Security_Price set Last_Qtr_EPS = to_number(‘$2.81′, ‘$999.99′);

18.内部统计函数
  AVG(value):计算平均值,它的参数来自于它所作用的若干行。
  STDDEV(value):返回它所
作用的若干行作为参数的标准差。
  VARIANCE(value):返回它所作用的若干行作为参数的。

19.四舍五入函数和截取函数
  四舍五入ROUND(value, [scale]) ROUND(101.8) = 102 Round(123.37, 1) = 123.4
  截取TRUNC(value, [scale]) Trunc(123.33) = 123 Trunc(123.567, 2) = 123.56
  求最大整数FLOOR(value) Floor(128.3)=128 Floor(129.8) = 129 除了不能截取小数部分外,Floor几乎等同于Trunc函数。
  求最小整数CELL(value) Cell(128.3)=129 Cell(129.8) = 130

20.求最大或最小值
  MAX和MIN。

21.替换NULL
  NVL(column, value)。
  select nvl(Additional, 0) from Course;

22.内部聚合函数
  COUNT函数:
  查找相异的行:DISTINCT

Leave a Comment : more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Blogroll

A few highly recommended websites...