zoukankan      html  css  js  c++  java
  • 常用SQL语句总结

    1.查找同一张表中多个字段都重复的数据

    (1)查找重复数据

      select t0.* from(select 注册号,公司名 from t1 group by 注册号,公司名 hacing count(公司名) > 1) t

      left join t1 t0

      on t0.注册号 = t.[注册号] and t0.公司名 = t.[公司名] where t.公司名 is not null order by t.[公司名]
    (2)删除同一张表中的重复数据(这张表有自增id,删掉id数字小的那条)
      delete from vi.dbo.t1
      where 公司名 in (select 公司名 from vi.dbo.t1 group by 公司名 having count(公司名) > 1)
      and id not in (select min(id) from vi.dbo.t1 group by 公司名 having count(公司名)>1);
     (3)删除同一张表中的重复数据(这张表有自增id,删掉id大的那条)
    delete p1 from Person p1 ,Person p2
    where p1.Email =p2.Email and p1.Id > p2.Id

    2.对于已经存在的表,添加一列新的数据

    要求保留两位小数点,长度为18个字节

    sql: alter table IC.dbo.t2 add icp同比率2019 numeric(18,2)

    3.计算多个标签下的数据量(有时候某个标签的数据量是0,如果不做处理,不会显示)

    select * into IC.dbo.t2
    from (select distinct b.一级来源类型,isnull(a.总量,0)数量
    from eccrc.dbo. t1 b
          left join (SELECT 一级来源类型,COUNT(distinct pg_cust_id)总量
           FROM eccrc.dbo.t1_all
                     WHERE 客户状态='0'
                     AND 工商类型='标准企业工商'
                     AND 创建年月>='2019-01-01'
                     AND 创建年月<='2019-01-31'
                     GROUP BY 一级来源类型)a
           on b.一级来源类型=a.一级来源类型
         where b.一级来源类型 in ('活动管理平台','市场BD','销售录入','信誉','资源中心','总部CSC下发')
      )c
     
    4.跨服务器操作数据库中的数据
    select * into  目的数据库名.dbo.表名 from openrowset
    ('SQLOLEDB','服务器地址';'登录名';'密码',源数据库名.dbo.表名)
     
    5.将表' t1 '重命名为 ' t2 '
    exec sp_rename 't1','t2'
     
    6.增加一列自增长列,列名为 id
    alter table vidb.dbo.t1 add  id  int identity(1,1) not null;
     
    7.存储过程中的 ‘if’ 语句的使用,以及正则表达式的用法
    ALTER PROCEDURE [dbo].[web_icponline](@city nvarchar(max))
    AS
    if object_id('bo')is not null drop table bo

    if @city='广州'
    begin
    select t1.* into t2 from dyx_区域,bo where charindex(dyx_区域.区域,bo.公司名)>0 and dyx_区域.city='广州'
    drop table t1
    exec sp_rename 't2','t1'
    update t1 set 公司类型='普通企业'
    update t1 set 联系人=replace(replace(REPLACE(联系人,'先生',''),'女士',''),' ','')
    update t1 set 联系电话=replace(replace(联系电话,'*','-'),'分机','')
    update t1 set 联系电话='020-'+replace(replace(replace(联系电话,'-',''),'/',''),' ','') where len(replace(replace(replace(联系电话,'-',''),'/',''),' ',''))=8
    select t1.*,dbo.GetRegexMatchGroups(联系电话,'(13d|14[579]|15[^4,D]|16[6]|17[0135678]|18d|19[89])d{8}|17d{9}',0,50)[手机],
    dbo.GetRegexMatchGroups(联系电话,'([((]?0?20[))/s]?[-s]?[2-9]d{7}(-d{1,4})?)',0,50)[座机]
    into t3 from t1
    update t3 set 座机=dbo.regexReplace(座机,'^(([((]?20[))]?[-/s]?)|([((]?020[))]?[-/s]?))','020-',1,0)
    update t3 set 省份='4'
    end
     
  • 相关阅读:
    Erlang性能的八个误区
    Unity预览
    一步步实现cnblogs博客采集工具>实现辅助对话框
    Asp.Net MVC 必备插件MVC Route Visualizer(Visual Studio 2012 版)
    IBM SOA[ESB,BPM,Portal等]基础架构图解
    PowerShell收发TCP消息包
    Sonar安装使用篇
    在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke
    排序算法
    ASP.NET MVC Web API 学习增删改查
  • 原文地址:https://www.cnblogs.com/cheng-cheng/p/10489853.html
Copyright © 2011-2022 走看看