sql 学习心得 第一篇


distinct  --去重复

创建连接服务器
exec sp_addlinkedserver   '连接服务器名称', '', 'SQLOLEDB', '远程服务器名或ip地址' 
exec sp_addlinkedsrvlogin  '连接服务器名称', 'false',null, '远程数据库账号', '远程数据库密码'

merge --语句使用
1.MERGE INTO test T1
2.USING (SELECT OWNER , OBJECT_NAME , MAX(ID) ID FROM T GROUP BY OWNER, OBJECT_NAME) T
3.ON (T.OWNER = T1.OWNER AND T.OBJECT_NAME = T1.TABLE_NAME)
4.WHEN MATCHED THEN UPDATE SET T1.ID = T.ID
5.WHEN NOT MATCHED THEN INSERT VALUES (T.ID, T.OWNER, T.OBJECT_NAME);
第一行 命名目标表并给别名T1
第二行 using子句提供merge操作的数据源,命名T
第三行 on子句指定合并的条件
第四行 when matched then 子句判定条件符合则对表T1做什么改变(或删除)
第五行 when not matched then 子句判断条件不符合则插入的操作

@@rowcount -- 返回上条语句  影响行数

SET NOCOUNT ON;

SET NOCOUNT OFF;

注释 
当 SET NOCOUNT 为 ON 时,不返回计数(表示受 Transact-SQL 语句影响的行数)。当 SET NOCOUNT 为 OFF 时,返回计数。 

CAST(123 AS “123” ) --类型转换
注释:使用CAST函数进行数据类型转换时,在下列情况下能够被接受:
(1)两个表达式的数据类型完全相同。
(2)两个表达式可隐性转换。
(3)必须显式转换数据类型。
如果转换时没有指定数据类型的长度,则SQServer自动提供长度为30


 ABS(-123)  = 123  绝对值函数 注释:  通俗讲 “取正”  负的变正的   正的还是正的


从 decimal 或 numeric 向 float 或 real 转换会导致精度损失。
从 int、smallint、tinyint、float、real、money 或 smallmoney 向 decimal 或 numeric 转换会导致溢出。
round() 、floor()、ceiling()三个函数定义
round() 遵循四舍五入把原值转化为指定小数位数,如:round(1.45,0) = 1;round(1.55,0)=2
floor()向下舍入为指定小数位数 如:floor(1.45,0)= 1;floor(1.55,0) = 1
ceiling()向上舍入为指定小数位数 如:ceiling(1.45,0) = 2;ceiling(1.55,0)=2
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页