zoukankan      html  css  js  c++  java
  • 常用的sql语句

    1:按状态排序 未提交-->已提交-->已结束 最后按时间倒序排序 (1:提交 2:未提交 3:已结束 )

    SELECT * FROM 表名 ORDER BY 
    CASE WHEN Status=2 THEN 3 WHEN Status=1 THEN 2 WHEN Status=3 THEN 1 end DESC , 
    FLastModifyTime DESC

     2:防止字段有空的情况

    CASE WHEN ISNULL(Status,0)=1 THEN '未提交' WHEN ISNULL(Status,0)=2 THEN '已提交' WHEN ISNULL(Status,0)=3 THEN '已结束' END Status,
    或者
    CASE WHEN Status IS NOT NULL THEN '未知' WHEN Status = 1 THEN '未提交' WHEN Status=2 THEN '已提交' WHEN Status=3 THEN '已结束' END Status,

     3:统计未提交的人数

    SUM((CASE WHEN Status IS NOT NULL AND Status=1 THEN 1 ELSE 0 end))

     4:事务

    BEGIN TRANSACTION  --开启事务
     BEGIN
       --执行的操作语句
      IF @@ERROR = 0  --没有错误
         COMMIT TRANSACTION  --提交事务
      ELSE
         ROLLBACK TRANSACTION   --事务回滚
      END 

     5:返回第一个不连续的ID

    select top 1 AID from (
    select A0.fid as AID,A1.fid as BID from 
    (SELECT  fid FROM 表) A0
    left join (SELECT  fid FROM 表) A1 on A0.fid+1=A1.fid
    ) t where BID is null order by AID asc

     6:两张表关联查询,表A为主表,A表对B表一对多

    --一般效果
     SELECT ID, 姓名,担保姓名 FROM A 
     LEFT JOIN B ON A.ID=B.ID
                                        
     --处理后的效果,先排序A表(按重复的ID分组),查询时每次找最小的FRowIndex显示姓名,否则显示空
    SELECT ID,CASE WHEN pr.FRowIndex=1 then 姓名 ELSE '' END 姓名, 担保姓名
    FROM (SELECT ROW_NUMBER() OVER(PARTITION BY ID ORDER BY ID) FRowIndex,* FROM A) pr 
    LEFT JOIN B pc ON pr.ID
    =pc.ID

     7.将逗号隔开的一个字符串拆分成多列

    select FValue=SUBSTRING(FValue+',',number,charindex(',',FValue+',',number)-number)
    from t_table ,master..spt_values s
    where type='p' and number>0 and substring(','+FValue,number,1)=',' 

     8.将同一个字段拆分为多个字段

     

    SELECT PARSENAME(REPLACE(FValue,',','.'), 1) AS FValue,PARSENAME(REPLACE(FValue,',','.'), 2) AS FValue1,PARSENAME(REPLACE(FValue,',','.'), 3) AS FValue2,PARSENAME(REPLACE(FValue,',','.'), 4) AS FValue3,PARSENAME(REPLACE(FValue,',','.'), 5) AS FValue4
     FROM t_table 
  • 相关阅读:
    angular2+ 使用ant.design 的 select组件时(nz-select)下拉框没有脱离文档流,直接撑开页面展示的问题
    element 获取table组件的下标
    调幅调频调相位
    Mongoose基于MongoDB建模并设置关联
    Xavier上TensorRT和Pytorch运行时间对比
    理解vue实例的生命周期和钩子函数
    [Vue]组件——.sync 修饰符实现对prop 进行“双向绑定”(子组件向父组件传值)
    vm.$attrs 【Vue 2.4.0新增inheritAttrs,attrs详解】
    (转)vue v-on修饰符
    Vue中的computed属性
  • 原文地址:https://www.cnblogs.com/lcq529/p/9365432.html
Copyright © 2011-2022 走看看