1、 ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效。
2、用户自定义函数主要有:表值函数和标量值函数
表值函数返回一个值,标量值函数返回一张表。另外,函数名前面必须加上dbo架构名称。(即dbo.functionName)
注:创建函数时,应当添加注释,用以说明函数的用途,参数的意义,设计原理等。
3、存储过程有多个参数时,调用时不需要使用括号将参数括起来;创建带返回值的存储过程,需要定义一个变量用于结束返回值,调用时也需要创建。
4、临时表:表名前一个#为局部临时表,两个#为全局临时表,例:
Select username into #temp from users where 1=0;(1=0是获取users的表结构)
5、charindex:
CHARINDEX和PATINDEX函数常常用来在一段字符中搜索字符或者字符串。如果被搜索的字符中包含有要搜索的字符,那么这两个函数返回一个非零的整数,这个整数是要搜索的字符在被搜索的字符中的开始位数。PATINDEX函数支持使用通配符来进行搜索,然而CHARINDEX不支持通佩符。
CHARINDEX函数返回字符或者字符串在另一个字符串中的起始位置。CHARINDEX函数调用方法如下:
CHARINDEX ( expression1 , expression2 [ , start_location ] )
Expression1是要到expression2中寻找的字符中,start_location是CHARINDEX函数开始在expression2中找expression1的位置。
6、 sql over的作用及用法 over不能单独使用,要和分析函数: rank() ,dense_rank(),row_number()等一起使用。
Over()和 row_number()一起使用时可以生成行号:
Select row_number() over( order by tb.username asc) as rowid,(后面省略)
7、游标可用于对于查询的结果集进行逐行处理。使用完之后必须关闭和释放,另使用时要慎重,如果SQL写法不当容易锁定记录,导致其他SQL无法执行。