SQLServer函数的使⽤
SQL 函数
⼀、 SQL Aggregate 函数(合计)
  Aggregate:函数计算从列中取得的值,返回⼀个单⼀的值。
  函数:
AVG() - 返回平均值
COUNT() - 返回总⾏数
Top 1 - 返回数据的第⼀⾏的值,要使⽤order by进⾏正序排序(只有MS Access⽀持FIRST()和LAST()函数)
Top 1  - 返回数据的最后⼀⾏的值,要使⽤order by进⾏倒叙排序(LAST)
MAX() - 返回最⼤值
MIN() - 返回最⼩值
SUM() - 返回总和SQL Scalar 函数
⼆、 SQL Scalar 函数(数量、标量)
  Scalar 函数基于输⼊值,返回⼀个单⼀的值。
  函数:
UPPER() - 将某个字段转换为⼤写---(Mysql中使⽤UCASE())column函数怎么使用
LOWER() - 将某个字段转换为⼩写---(Mysql中使⽤LCASE())
LEFT(),RIGHT(),SubString() -从某个⽂本字段提取字符---(Mysql中使⽤MID())
LEN() - 返回某个⽂本字段的长度(Mysql中使⽤LENGTH())
ROUND() - 对某个数值字段进⾏指定⼩数位数的四舍五⼊-decimal()
GETDATE() - 返回当前的系统⽇期和时间---(Mysql中使⽤NOW())
COMVERT()-把⽇期转换为新数据类型的通⽤函数(Mysql中使⽤FORMAT() - 格式化某个字段的显⽰⽅式)
三、函数例⼦
  1.AVG() - 返回平均值(Average): SELECT AVG(column_ name) FROM table_name
    查询a表中count列的平均值SELECT AVG(count) AS CountAverage FROM a;
  2.COUNT() - 返回总⾏数
    1) COUNT(column_name)函数返回指定列的列数的总数(NULL不计⼊):
      SELECT COUNT(column_name) FROM table_name;
    2) COUNT(*) 函数返回表中的记录数:
      SELECT COUNT(*) FROM table_name;
    3) COUNT(DISTINCT column)函数返回指定列的不重复的总数:distinct去重
      SELECT COUNT(DISTINCT column_name) FROM table_name;
    COUNT(DISTINCT) 适⽤于 ORACLE 和 Microsoft SQL Server。
  3. TOP⼦句⽤于规定要返回的记录的数⽬。
    percent百分⽐: SELECT TOP number|percent column_name(s) FROM table_name;
    a表中百分之50的数据:select Top 50 percent * from a;
  TOP 1 -返回指定的列中第⼀个数据(只有MS Access⽀持FIRST()和LAST()函数)
    1) SQL Server: asc正序
      SELECT TOP 1 column/* FROM table_name ORDER BY column_name ASC;
    2) MYSQL:
      SELECT column FROM table_name ORDER BY column_name ASC LIMIT 1;
    3) ORACLE:
      SELECT column FROM table ORDER BY column ASC WHERE ROWNUM <=1;
    4) MS Access: SELECT FIRST(column_name) FROM table_name;
  4.TOP 1  - 返回指定的列中最后⼀个记录的值
    1) SQL Server:  desc倒叙
      SELECT TOP 1 column_name FROM table_name ORDER BY column_name DESC;    2) MYSQL:
      SELECT column FROM table_name ORDER BY column_name DESC LIMIT 1;
    3)ORACLE:
      SELECT column FROM table ORDER BY column DESC WHERE ROWNUM <=1;    4)MS Access:
      SELECT LAST(column_name) FROM table_name;
  5.MAX() - 返回指定列的最⼤值SELECT MAX(column_name) FROM table_name;
    查询a表中count列的中最⼤的值:select MAX(count) from a;
  6.MIN()- 函数返回指定列的最⼩值SELECT MIN(column_name) FROM table_name;
    查询a表中count列的中最⼩的值:select MIN(count) from a;
  7.SUM() - 函数返回数值列的总数SELECT SUM(column_name) FROM table_name;
    查询a表中count列的中值得总数:select SUM(count) from a;
  8.GROUP BY-⽤于结合聚合函数,根据⼀个或多个列对结果集进⾏分组
    SELECT column_name, aggregate_function(column_name)
    FROM table_name WHERE column_name operator value
    GROUP BY column_name;
    group by分组的字段=select查询的字段
    1)查询表中姓名,根据姓名分组:
      select Name from Tables group by Name;
    2)查询姓名年龄和总成绩,根据姓名年龄分组:
      select Name,Age,sum(Score) as '总数' from Tables group by Name,Age;
  9.HAVING⼦句可以筛选分组后的各组数据
    增加 HAVING ⼦句原因是:WHERE 条件不能使⽤聚合函数
    SELECT column_name,aggregate_function(column_name)
    FROM table_name WHERE column_name operator value
    GROUP BY column_name
    HAVING aggregate_function(column_name) operator value;
  10.EXISTS运算符
·    ⽤于判断查询⼦句是否有记录,如果有⼀条或多条记录存在返回 True,否则返回 False     SELECT column_name(s) FROM table_name
    WHERE EXISTS(SELECT column_name FROM table_name WHERE condition);
  11.UPPER() 函数把字段的值转换为⼤写
    (1) SQL SERVER: upper
      SELECT UPPER(column_name) FROM table_name;
    (2) MYSQL: ucase
      SELECT UCASE(column_name) FROM table_name;
  12.LOWER()函数把字段的值转换为⼩写
    (1)SQL SERVER: lower
      SELECT LOWER (column_name) FROM table_name;
    (2)MYSQL: lcase
      SELECT LCASE(column_name) FROM table_name;
  13.left(),right(),substring()函数⽤于从⽂本字段中提取字符
    1) SQL SERVER:
     left(string,length):
1--返回从字符串左边开始指定个数的字符
2select LEFT('SqlServer_2008',3);  --返回Sql
    right(string,length):
1--返回从字符串右边开始指定个数的字符
2select RIGHT('SqlServer_2008',4);---2008
    substring(character,start,length):
1--返回从字符串中间的字符
2select SUBSTRING('SqlServer_2008',4,6);---server
    2) MYSQL: MID()
    SELECT MID(column_name,start,length) FROM table_name;
1--返回从字符串中间的字符
2select MID('列名OR字符串',1,4);--- 列名OR
  14.LEN() -函数返回⽂本字段中值的长度
    1) SQL SERVER: len()
      SELECT LEN(column_name) FROM table_ name;
    2) MYSQL: length()
      SELECT LENGTH(column_name) FROM table_name;
  15.ROUND() 函数⽤于把数值字段四舍五⼊为指定的⼩数位数
    1) ROUND(数据OR字段, ⼩数后⼏位, 截断) 截断默认是0
    SELECT ROUND(column_name,decimals) FROM table_name;
    2)decimal():⼩数,⼗进制 cast(数据as decimal(,))
    SELECT CAST(数据OR字段 as decimal(数据的位数, ⼩数后⼏位))
  16. getdate() 获取当前系统的⽇期和时间
    select getdate();
  17.covert() 函数是把⽇期转换为新数据类型的通⽤函数。    CONVERT(data_type(length),expression,style)
    convert(数据类型(长度),getdate(),格式)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。