SQL学习中的一些总结

别名可与原名用空格隔开代替as
获取字符串长度用len(字段)

  1. sql 列出一年的月份数
    SELECT Number [MONTH] FROM master..spt_values WHERE Number BETWEEN 1 AND 12 AND type = 'P';

  2. SQL查询结果,某字段添加后缀(注意函数不可拼接,查询结果重命名重新取出拼接,标红处为拼接函数concat(拼接字符,字段,拼接字符)),concat可加前后缀,不添加前后缀字符则不加前后缀。
    SELECT concat(a.[MONTH],'月') AS '月' from (SELECT Number [MONTH] FROM master..spt_values WHERE Number BETWEEN 1 AND 12 AND type = 'P') as a;

  3. SQL--while循环
    DECLARE @i int --声明变量
    DECLARE @s int --声明变量
    set @i=1 --变量赋值
    set @s=1 --变量赋值
    WHILE @i<100 --循环条件
    BEGIN 
    SET @i=@i+1 --操作
    SET @s=@i+@s --操作
    END
    PRINT @s --打印结果
    

  4. datepart与datename可以获取时间字段中的年、月、日……,只是datepart获取的是时间的数字,而datename获取的是字符串(字符串显示各语言版本有别)
    SELECT PTime as '日期',
    DATEPART(yy,PTime) as '年yy',
    DATEPART(yyyy,PTime) as '年yyyy',
    DATEPART(qq,PTime) as '季qq',
    DATEPART(q,PTime) as '季q',
    DATEPART(mm,PTime) as '月mm',
    DATEPART(m,PTime) as '月m',
    DATEPART(dy,PTime) as '年中第dy日',
    DATEPART(y,PTime) as '年中第y日',
    DATEPART(dd,PTime) as '日dd',
    DATEPART(d,PTime) as '日d',
    DATEPART(wk,PTime) as '年中第wk周',
    DATEPART(ww,PTime) as '年中第ww周',
    DATEPART(dw,PTime) as '星期dw',
    DATEPART(w,PTime) as '星期w'
    FROM pTable;
    


     

    Datepart

    Datename

    缩写

    year

    yy, yyyy

    季度

    quarter

    qq, q

    month

    mm, m

    年中的日

    dayofyear

    dy, y

    day

    dd, d

    week

    wk, ww

    星期

    weekday

    dw, w

    小时

    Hour

    hh

    分钟

    minute

    mi, n

    second

    ss, s

    毫秒

    millisecond

    ms

    微妙

    ……

    mcs

    纳秒

    ……

    ns

  5. 条件语句 case  when,第二种更实用

    (1). select  case 字段 

            when 字段值 then 结果 

            else 结果 

        end from 表

    相当于筛选某字段值返回一个结果

    (2).  select   case 

            when 条件 then 结果 

            when 条件 then 结果 

            else 结果 

        end from 表
     

  6. 条件语句IF ELSE

    IF 条件   

                       BEGIN

    查询语句
    END

             ELSE IF条件

    BEGIN

    查询语句
    END

             ELSE

                       BEGIN

    查询语句
    END

  7. 字符串去除中间某段
    SELECT
    	concat (--concat字符拼接,此处用来拼接截取字符前段和后段
    		SUBSTRING ( --SUBSTRING字符截取,
    			Name, --截取字符的来源
    			0, --截取字符的起始位置
    			CHARINDEX( '小区智', Name ) --截取字符的长度,此处CHARINDEX用来获取字符串的位置用法CHARINDEX(要查询的字符串,查询的字符串来源)
    		),
    		SUBSTRING (
    			Name,
    			CHARINDEX( '小区智', Name ) + 3,--要去除的字符串长度为多少则加多少
    		LEN( Name ) - CHARINDEX( '小区智', Name )) --len,获取总字符串长度,减去前面已处理字段		
    	),
    	Name --查出原字段用于对比	
    FROM
    	test;
    

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值