xml地图|网站地图|网站标签 [设为首页] [加入收藏]
sqlserver两条求和sql脚本相加的方法分享,由浅入
分类:数据库

 SQL去重一般用distinct,group by这两种方法,介绍一下  

下文分享两条sql求和脚本,再次求和的方法分享

go

 澳门新葡亰手机版 1

摘要:

exec sp_configure 'xp_cmdshell', 1

 澳门新葡亰手机版 2

 /*
     例:
       下文已知两条sql求和脚本,现需对两张不同表的求和记录再次求和   
     */  
     ---对两条求和sql脚本求和的方法
      select sum(q) from 
      (
       select sum(qty)  as q from tableNameA where ...
       union all 
        select sum(qty)  as q from tableNameB where ...
       ) as table

     ---对多条求和sql脚本,再次求和的方法分享
     select sum(q) from 
      (
       select sum(qty)  as q from tableNameA where ...
       union all 
        select sum(qty)  as q from tableNameB where ...
         union all 
        select sum(qty)  as q from tableNameC where ...
        union all 
        select sum(qty)  as q from tableNameD where ...
       ...  
    ) as table

exec sp_configure 'show advanced options', 1

时间戳:就是linux的时间   好一点的数据库储存时间的字段都是用时间戳存的,int类型,安全,占用空间小, 简单查看时间戳  

转自:http://www.maomao365.com/?p=7205

3.此语句在sqlserver里执行时,不能换行,否则报错

你可以帮他当做成分组函数或是分析函数

 

reconfigure

澳门新葡亰手机版,时间日期函数

2.如果导出时指定过分隔符,导入时用上面的导入方法会报错。解决方法是不要指定分割符

格式: convert(要转的类型,要转的数据)  例如: CONVERT(VARCHAR(50),tid)   tid是int型转成varchar,很简单

 

澳门新葡亰手机版 3

go

 

--根据sql语句导出指定表的文本文件 
exec master..xp_cmdshell 'bcp "select top 10 * from dbname..tablename" queryout d:DT.txt -c -Sservername -Usa -Ppassword' 

 

注:

delete  from  表名  where (1=1)

go

 insert into 表名(字段名)  values  (增加数据)

1.如果数据表里已有数据,此方法从文本导数据到数据表时,会在后面追加数据,不会先清空表。

首先我创建了两个库,每个库两张表.(工作的时候,每个公司最好有自己的数据库模型,产品也可以看,模型工具一般用PD(power designer)什么的,用起来简单规范方便,建议萌新学习)

--导出指定表的文本文件 
exec master..xp_cmdshell 'bcp dbname..tablename out D:DT.txt -c -Sservername -Usa -Ppassword' 

很简单,一看便知  这里说一下我们经常用的通配符为  %% ,但是还有一些 像  like '_ a_'  ,like  '[a]b' 这种的 也是通配符,LZ觉得看关键字Like就完事儿了。知道就行了不常用

go

写的全面,很好,这里我就不写了

reconfigure

常用的SQL 由浅入深

注:导入时注意数据类型设置

连表查询,超过两个表以上的连表查询,一定要记得大表在前小表在后。实际情况里 inner join,left join使用的比较多,这里做一下区分,到底什么时候用inner,什么时候用left

       我们都知道日常在面对数据需求时需要导出数据,比较少量的数据导出我们一般是通过查询后另存即可,当面对数据量比较大的时候我们应该怎么处理?
我搜索总结一些几个方法:1、bcp 导出。2、数据库本身自带的导入导出。3、如果更大的话,直接把备份库直接拷贝出来,导出整个库
方法1:(少数量导入和导出)
select *
from aa.dbo.studens

 

--导出指定表的文本文件,指定分隔符,在-t后设置分隔符
exec master..xp_cmdshell 'bcp dbname..tablename out D:DT.txt -c -t, -Sservername -Usa -Ppassword'

left  join:左联合  就是说两个表关联  左边的是大哥,一切以大哥为准,大哥表的数据无条件全部返回,其他表跟大哥对应的数据,大哥也全都要 (所以一般来说,left比inner的数据量要多)

方法三:bcp导出
--先开启cmdshell

先写到这里,差不多够用,有时间的话lz会补充的,总结写复杂的SQL不一定需要会那些新颖或者太复杂的函数,按照逻辑一点点的来,分步查,慢慢提高自己SQL。

 

看到了吧,多了个排序字段  在where一下 真分页就OK了嘛

--导入指定表的文本文件
exec master..xp_cmdshell 'bcp dbname..tablename in d:DT.txt -c -Sservername -Usa -Ppassword'

网上也有很多,说的太官方,容易迷。这里我通俗的讲一讲

方法二:数据库本身自带的导出:点击数据库(aaa)--任务--导出(入)数据—数据源(选择与源的数据存储格式相匹配的数据访问接口。
可用于数据源的访问接口可能不止一个。 例如,对于SQL Server可以使用SQL ServerNative Client、.NET Framework 数据提供程序的
SQL Server 或 Microsoft OLE DB Provider for SQL Server):选择SQL Server Native Client or Microsoft OLE DB Provider for SQL Server 。
登录用户名和密码--目标:选择你想存为的文件格式(平面文件目标)--文件名(存放地址:C:aa.txt)---点击下一步到:源表或源视图(dbo.student)
——行分隔符:选择({CR}{LF})列分隔符(逗号{,})--点下去就行了

模糊查询

2.删除,更新

澳门新葡亰手机版 4·

查数据量,不建议用 count(*),换成count(字段名),没有字段名的约束  用 count(1)来查,执行速度截然不同

本文由澳门新葡亰手机版发布于数据库,转载请注明出处:sqlserver两条求和sql脚本相加的方法分享,由浅入

上一篇:没有了 下一篇:没有了
猜你喜欢
热门排行
精彩图文