SQL SERVER 数据库随笔

  1. 遇到以零作除数错误:
    在第一行加上:set ansi_warnings off
    SET ARITHABORT off
    SET ARITHIGNORE on

  2. 计算环比时,错行显示上一行或者下一行的数据函数:
    lead(表达式,错行数,默认值)、lag(表达式,错行数,默认值)
    eg:Select lag(t.PARAM_VALUE, 1, 0) over(ORDER BY t.DATA_DATETIME)

  3. 用于连接两个字符串的函数:
    Concat(字符串1,字符串2)as 名称---------至少两个参数

  4. 按字段中某个字排序:
    CHARINDEX()函数
    eg:ORDER BY CHARINDEX(SUBSTRING(t[指标名称], 1, 1), ‘火水风太生’)

  5. 日期:
    ①截取字符串型日期
    eg:SUBSTRING (CONVERT(VARCHAR, t.日期,23) , 1, 4) = ‘2019’
    ②截取日期型日期
    eg:year(t.日期)= 2019
    ③上个月
    eg:concat (k.[日期], ‘/01’) =(DATEADD (MONTH, -1, concat (SUBSTRING (CONVERT (VARCHAR, m.[date], 111), 0, 8),’/01’)))
    ④去年
    eg:x.[日期] = SUBSTRING (CONVERT (VARCHAR, DATEADD (year, -1, concat (z.[日期], ‘/01/01’) ), 111) , 1, 4)
    ⑤替换
    eg:REPLACE (y.[日期], ‘/’, ‘’)
    ⑥返回整点数据
    Eg: where RIGHT (CONVERT (varchar (19), data_time, 120), 5)=‘00:00’

  6. 在查询结果前插入一列序号:
    row_number()函数
    eg:select TOP 10 row_number() over(order by round(t.PARAM_VALUE,2) DESC) as 序号

  7. 在查询结果最下方插入一行虚拟数据:
    Union()函数-------前后字段相同
    eg:union
    SELECT 11 as 序号, 2017 as 年份, ‘澳洲’ as 国家, 11 as 净进口量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值