zoukankan      html  css  js  c++  java
  • Sql小技巧

    1.CTE

    with as类似于临时表,子查询,但它整句只相当于一句sql语句,复合查询时很好用

    1 with cr as
    2 (select * from a)
    3 select * from cr
    CTE

    2.PATINDEX  

    返回指定表达式中某模式第一次出现的起始位置;如果在全部有效的文本和字符数据类型中没有找到该模式,则返回零。
    基本语法:PATINDEX ( '%pattern%' , expression )
    pattern:字符串。可以使用通配符,但 pattern 之前和之后必须有 % 字符(搜索第一个和最后一个字符时除外)。pattern 是短字符数据类型类别的表达式
    expression:表达式,通常为要在其中搜索指定模式的列,expression 为字符串数据类型类别

    1 patindex('%[^0-9|\.]%',name)  --获取第一个非数字和点的字符的位置
    PATINDEX

     3.PARTITION BY

    PARTITION BY是分组,GROUP BY 是分组聚合

     1 NAME SCORE
     2 A      13
     3 B      34
     4 A      56
     5 B      68
     6 C       4
     7 SELECT NAME,ROW_NUMBER() OVER(PARTITION BY NAME ORDER BY SCORE) rownum FROM dbo.USERS
     8 NAME rownum
     9 A        1
    10 A        2
    11 B        1
    12 B        2
    13 C        1
    PARTITION BY

     4.rowcount与@@rowcount

    rowcount限定之后语句影响的行数,与top差不多,但top影响的行数不能用变量,rowcount可以;@@rowcount返回上一句sql影响的数据行数。

    1 set rowcount 10
    2 select * from 表A--返回10条数据
    3 
    4 select  * from 表A
    5 select @@Rowcount --返回表A的行数
    View Code

    5.删除除了自动编号不同, 其他都相同的学生冗余信息

    delete tablename where  ID  not in(select min( ID) from tablename group by学号, 姓名, 课程编号, 课程名称, 分数)

    6.复制(备份)表(只复制结构,源表名:a  新表名:b) 

    select * into b from a where 1<>1   (where1=1,拷贝表结构和数据内容)
  • 相关阅读:
    多层动态库的编译及使用
    gxx -L和/etc/ld.so.conf的理解
    cmake 创建并调用动态库和静态库
    cifX驱动安装及SYCON.net的使用
    企业号新手指引
    转:Python正则表达式指南
    Windows平台安装Beautiful Soup
    微信企业号、订阅号、服务号之间有什么区别和不同
    常见HTTP状态(304,200等)
    微信内置浏览器对于html5的支持
  • 原文地址:https://www.cnblogs.com/shuangzimuchangzhu/p/6132328.html
Copyright © 2011-2022 走看看