zoukankan      html  css  js  c++  java
  • sql server 操作(不定期更新)

    要求:基本的语法要清楚。

    sql server疑难点:

     1、Partition by可以理解为 对多行数据分组后排序取每个产品的第一行数据

    先处理内查询,由内向外处理,外层查询利用内层查询的结果嵌套查询不仅仅可以用于父查询select语句使用。还可以用于insert、update、delete语句或其他子查询中。

     

    2、去重:去除地址重复的

    语法:select * from 表名 where id in (select min(id) from 表名 group by Address) 

    举例:select * from [parse2] where id in (select min(id) from [parse2] group by Address);

     

    3、删除某一列

    语法:alter table table_name

     

    4、求和:表中对两个字段进行求和,并对求和结果进行加减时

    举例:若要计算出场地费(slf)和人工费(clf)的和,并进行相加:

    1)若两个字段都为数值类型,则不需要类型转换,直接求和即可,方式如下:
    语法:select sum(slf)+sum(clf) from 表名称 where 条件语句
    2)若两个字段为字符型的,比如类型为varchar的话,则需要进行类型转换后,再进行计算,方法如下:
    语法:select sum(cast(slf AS decimal(35, 0) )) + sum(cast(clf AS decimal(35,0) )) from 表名称 where clf!='' and slf!=''

     

    5、修改某个字段的部分内容

    语法:update  表名  set  字段=REPLACE (如果是不同的类型需要进行转换,  修改前的字段, 修改后的字段)

    举例:update [pharse3] set width=REPLACE (cast(width as nvarchar(20)),'50米,'一百米')

    6、更改字段的类型

    语法:update 表名 set 字段=cast(字段  as nvarchar(20))

    举例:update [dbo] set year=cast(year as nvarchar(20))

     

    7、删除字段:直接删除date会出现约束错误,要删除约束

    语法:

    alter table 表名 drop constraint 表名下面的约束的很长的那个东西
    go

    alter table 表名 drop column 字段

    举例:

    alter table [pharse3] drop  constraint    DF__pharse3__date__4FA7B896
    go

    alter table [pharse3] drop column date

     

    8、更改字段名字

    语法:

    exec  sp_rename  '[BB].[OldCol]','NewCol' -- 注意逗号后面,没有表名,没有点号,没有方括号,执行这句,才能得到你想要的结果“NewCol”,

    exec  sp_rename  '[BB].[旧的字段名]',  '新的字段名' 
    或者,另一条等价:

    exec sp_rename  '[BB].[OldCol]',  [NewCol] -- 逗号后面,如果要用方括号,就不要同时再用引号 。

    举例:
    exec  sp_rename  '[Cdboare_coff].[Coefficient]',  [areacoef]
    如果说master分支提示错误,则有可能更改master 分支,切换到对应的数据库名字下面

     

    9、uinon 几张表,然后再保存

    Select * into 总表 from a
    Union all
    Select * from b
    Union All
    Select * from c

    10、except 两张表取差集,然后再保存

    select *
    into #temp
    from (
    select * from a
    except
    select * from b
    ) T --要取别名,不取别名则错误

     

     11、格式转换,这个比较复杂

    select 字段名  --上面和下面一致,用于显示列表字段内容
    from 表一  a
    LEFT JOIN 表二  b
    on cast(a.字段名  as nvarchar(20)) = b.字段名  -- 转换类型,注意点就在这里
    group by  字段名  -- 同上面一样的字段名,聚合函数不需要写(如avg(), )

     12、来个简单的,直接添加字段列某个字符,如 ‘!’ 等

    举例:select '!' + ReaId as re, huanxian  from  [CSpace]

     

     

     

     备注:以上均是在工作过程中产生的疑惑,整理之。

    参考资料:

    sql将查询结果建立为新表 - CSDN博客 

    参数数据类型 sql_variant 对于 like 函数的参数 1 无效。 - CSDN博客

    SqlServer获取当前日期 - Sir奔 - 博客园

    SQL实现表名更改,列名更改,约束更改 - jes.shaw - 博客园

    SQLSERVER,如何把一个表中某个字段的'NULL'值改为0?-CSDN论坛

     

  • 相关阅读:
    广大数据结构复习之顺序表
    vs2017编译器编写c语言代码函数安全问题
    大数据学习之Spark Streaming进阶 52
    大数据学习之Spark Streaming基础 52
    大数据学习之SparkSQL数据源 51
    本地eclipse idea 写的Hadoop的API和 spark程序不能访问云服务器中的数据
    大数据学习之SparkSQL 50
    【PHP】上传图片翻转问题
    【Linux】CentOS7 安装gdb
    【Linux】yum [Errno 14] HTTP Error 404
  • 原文地址:https://www.cnblogs.com/qianyuesheng/p/9648059.html
Copyright © 2011-2022 走看看