SQL函数

1、convert()


     定义:(1)把日期转换为新数据类型的通用函数


           (2)可以用不同的格式显示日期/时间数据


     语法:convert(data_type(length),data_to_be_converted,style)


     参数:data_type(length) 规定目标数据类型(带有可选的长度)。data_to_be_converted 含有需要转换的值。style 规定日期/时间的输出格式


   实例: CONVERT(VARCHAR(24),GETDATE(),113)


   结果:29 Dec 2008 16:25:46.635


2、upper()


   定义:返回字符串,根据当前字符集映射的所有字符更改为大写。


   实例:upper('Allah')


   结果:ALLAH


3、lower()


   定义:返回根据当前字符集映射所有字符改变为小写,即返回小写的字符串。


4、isnull()


   定义:使用指定的替换值替换 NULL


         微软的 ISNULL() 函数用于规定如何处理 NULL 值。


         NVL(), IFNULL() 和 COALESCE() 函数也可以达到相同的结果。


   语法:ISNULL ( check_expression , replacement_value )


   参数:check_expression 将被检查是否为 NULL的表达式。check_expression 可以是任何类型的。


   replacement_value 在 check_expression 为 NULL时将返回的表达式。replacement_value 必须与 check_expresssion 具有相同的类型。


    返回类型:返回与 check_expression 相同的类型


    注释:如果 check_expression 不为 NULL,那么返回该表达式的值;否则返回 replacement_value。


5、row_number() over 


   开窗函数  


6、avg()


   定义:AVG 函数返回数值列的平均值。NULL 值不包括在计算中。


   语法:select avg(column_name)from table_name


7、count()


   定义:COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入)


   语法:select count(column_name)from table_name


8、first()


   定义:FIRST() 函数返回指定的字段中第一个记录的值


   提示:可使用 ORDER BY 语句对记录进行排序。


   语法:select first(column_name)from table_name


9、last()


   定义:LAST() 函数返回指定的字段中最后一个记录的值。


    提示:可使用 ORDER BY 语句对记录进行排序


    语法:select last(column_name)from table_name


10、max()


    定义:MAX 函数返回一列中的最大值。NULL 值不包括在计算中。


    语法:select max(column_name)from table_name


    注释:MIN 和 MAX 也可用于文本列,以获得按字母顺序排列的最高或最低值。


11、min()


    定义:MIN 函数返回一列中的最小值。NULL 值不包括在计算中。


    语法:select min(column_name)from table_name


    注释:MIN 和 MAX 也可用于文本列,以获得按字母顺序排列的最高或最低值。


12、sum()


    定义:SUM 函数返回数值列的总数(总额)


    语法:select sum(column_name)from table_name


13、group by


    定义:GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组


    语法:SELECT column_name, aggregate_function(column_name)  FROM table_name


WHERE column_name operator value


GROUP BY column_name


14、having


    在 SQL 中增加 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 


    实例:select Customer,sum(OrderPrice) from Orders


group by Customer


having sum(OrderPrice)<2000


15、ucase()


    定义:UCASE 函数把字段的值转换为大写。


    语法:SELECT UCASE(column_name) FROM table_name


16、lcase()


    定义:LCASE 函数把字段的值转换为小写。


    语法:SELECT LCASE(column_name) FROM table_name


17、mid()


    定义:MID 函数用于从文本字段中提取字符


    语法:SELECT MID(column_name,start[,length]) FROM table_name


    参数:         描述:


   column_name     必需,要提取字符的字段


   start           必需,规定开始位置(起始值是1)


   length          可选,要返回的字符串,如果省略,则mid()函数返回剩余文本。


18、len()


     定义:LEN 函数返回文本字段中值的长度


     语法:SELECT LEN(column_name) FROM table_name


19、round()


     定义:ROUND 函数用于把数值字段舍入为指定的小数位数。舍入为最接近的整数


     语法:SELECT ROUND(column_name,decimals) FROM table_name


     参数:          描述:


     column_name     必需,要舍入的字段


     decimals        必需,规定要返回的小数位数


20、now()


    定义:NOW 函数返回当前的日期和时间。


    提示:提示:如果您在使用 Sql Server 数据库,请使用 getdate() 函数来获得当前的日期时间


    语法:SELECT NOW() FROM table_name


21、format()


    定义:FORMAT 函数用于对字段的显示进行格式化


    语法:SELECT FORMAT(column_name,format) FROM table_name


     参数:         描述:


     column_name    必需,要格式化的字段


     format         必需,规定格式


     实例:SELECT ProductName, UnitPrice, FORMAT(Now(),'YYYY-MM-DD') as PerDate


FROM Products



/*****/
inner join、left join、right join和full join区别

    INNER JOIN(JOIN): 如果表中有至少一个匹配,则返回行
    LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
    RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
    FULL JOIN: 只要其中一个表中存在匹配,就返回行

SQL增加列、修改列、删除列
1 增加列:
 alter table tableName add columnName varchar(30)
2.1 修改列类型
 alter table tableName alter column columnName varchar(30)
2.2  修改列名称
  exec sp_rename 'tableName.column1','column2'
 (把表名tableName的column1列名修改为column2)
3  删除列
  alter table tableName drop column columnName

SQL Server dateadd()
 语法:DATEADD(datepart,number,date)
 date 参数是合法的日期表达式。number 是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数
 实例:向 "OrderDate" 添加 2 天,这样就可以找到付款日期
SELECT OrderId,DATEADD(day,2,OrderDate) AS OrderPayDate
FROM Orders