`
ileson
  • 浏览: 215450 次
  • 性别: Icon_minigender_1
  • 来自: 河南省
社区版块
存档分类
最新评论

项目中SQL TIP 积累

SQL 
阅读更多
1、一张表t_payfee,有一个字段invoicenum,字段里内容是:
     id       invoicenum
     1001      12.00
     1002      89.00
     1003      0.00
要求:把invoicenum 的内容后取整数,即去掉小数点和小数点后面的00;
 
 update t_payfee
   set invoicenum=(select substring(invoicenum,0,charindex('.',invoicenum)) );

2、oracle 查询时间最近的记录
select * from t_payfee where payfeedate=(select max(payfeedate) from t_payfee where cardnum='00000036')

3、将表a中的某个字段值设置成表b的某字段值
   
update t_consumer
	set basenumber=jixiebiaodi
	from t_recordinput
	where t_consumer.usercode=t_recordinput.usercode and t_consumer.chaobiaodate=t_recordinput.chaobiaodate;

4、将某列左或者右 边补零
-->不够8位左边补零
update 表A
set 列1=right('00000000'+right(列1,len(列1)),8)
where ......;

-->右边补零
update 表A
set 列1=left(列1+'00000000',8)
where ......;

5、交费记录表 payfee 有两个字段 A(姓名)、B(金额).数据结构如下:
    A      B
   张三   10
   张三   20
   李四   30
   李四   40
   王五   50
   王五   20
  现要求:以A作为分组条件,取出B字段值最大的记录,得到结果集如下:
    A      B
   张三    20
   李四    40
   王五    50
select A,MAX(B) as b from payfee group by A

6、一种思路
引用
表A用户表 {sid,sname}
sid     sname
1       张三
2       李四
3       王五
表B交易表 {gid,sid,交易金额,交易量,交易时间}
gid    sid   交易金额   交易量    交易时间
1      1      10         4         20080808
2      1      34         6         20090409
3      2      45         8         20200908
4      1      5         22         20120907
5      2      55         2         20110101
6      3      44         8         20030908

求一条:查出所有用户 某段时间内的 交易金额总计 与交易量总计?
如:20080101 到20121221 之间的数据
sid  sname  总金额  总量
1     张三   49      32
2     李四   55      2
3     王五   null    null


能查出上面数据的sql..
select a.sid,a.sname,w.交易金额,w.交易量 from  A a left join  (select sid, SUM(交易金额) 交易金额, SUM(交易量)from  B where 交易时间 between atime and btime group by sid ) w
 on a.sid=w.sid

思路:先把B表根据外键(也就是A表的主键)进行分组,作为一张新表(w)与A 表进行join 左连接 ,这样时间条件就可以在分组里限制了
7、取一个表中的值更新另一个表;
update consumer 
set lastgas=t.lastgas,gasamount=t.totalgas
from consumer c,t_temp t 
where c.id=t.id ;


update consumer
set consumer.consumertype=temp.consumertype
from 库名称.dbo.t_consumer consumer join 另外的库名称.dbo.t_temp temp 
on consumer.id=temp.id;

8、sql server 2008 删除表中完全重复的多条数据,保留一条。用临时表的办法解决!
 
select distinct * into #temp from table where condition   //将查询符合条件的记录并合并相同记录,添加到临时表中
delete from table where condition    //从表中删除符合条件的记录,有重复的全部删除.                    
insert into table select * from #temp          //将临时表中的记录重新添加到表中


9、sql server 2008 中让其显示与oracle 中的rownum 一样的效果
select t.*, row_number() over(order by f_districtname) as a
  from (select f_districtname from t_userfiles group by f_districtname) t

10、查询出交易表中,所有最近一次的交易记录
select s.id,s.code,s.name,s.number,s.biaodi,
	s.type,s.unitprice ,s.date
from S s 
where s.date= (select MAX(date) from S w  
		where s.code=w.code
		group by code) 
		and s.date between  20130503 and 20130503


11、条件修改库
   
update tb_xxx 
set f_x=case 
            when 判断表达式   then  成立时的值  else 不成立时的值 
        end
where  条件
分享到:
评论

相关推荐

    自己公司实际项目中SQL学习

    自己写的SQL语句 最近公司里面做报表就写了点 也许对大家有点点帮助。O(∩_∩)O谢谢

    易买网项目sql数据库版

    【标签】"易买网sql"标签进一步明确了项目的核心技术,即SQL,它在电子商务平台中通常用于管理用户数据、商品信息、交易记录等重要信息。 【压缩包子文件的文件名称列表】"EasyBuy"可能是项目的源代码文件或者...

    乐优商城项目.sql

    乐优商城项目sql文件,可直接mysql中导入该sql文件执行一下即可。

    Flink SQL大数据项目实战(基于Flink1.14.3版本)

    分享一套课程——Flink SQL大数据项目实战(基于Flink1.14.3版本),完整版视频...学完本课程,希望零基础的学员能快速上手FlinkSQL进行项目开发,有基础的学员也能快速掌握FlinkSQL流批一体技术以及积累实战项目经验。

    oracle mysql sqlserver积累

    这些数据库系统各自拥有独特的特性和优势,被广泛应用于各种规模的企业和项目中。本资源“oracle mysql sqlserver积累”似乎包含了一个关于这三种数据库的CHM格式电子书集合,为学习和理解这些数据库系统的使用提供...

    saas项目.sql

    这个sql文件,就是在《saas-export项目-项目搭建与pom.xml的父子继承》博文中提到的数据库sql文件

    C# 版SQL美化解析器源码项目

    通过研究这个项目,开发人员可以深入理解SQL解析的内部机制,学习如何处理SQL的复杂性,以及如何在实际应用中实现语句美化。此外,对C#编程语言的熟练掌握也是必要的,因为该项目完全基于C#实现。对于想要提升自己在...

    Mybatis中执行String类型的自己拼写的sql,不执行配置文件中的sql

    在实际开发中,我们需要根据项目需求和团队规范来决定何时使用自定义SQL,何时依赖配置文件。理解并掌握这两种方式的使用,可以帮助我们更好地利用MyBatis的强大功能,提高代码的灵活性和可维护性。

    Visual FoxPro中SQL命令语法及示例

    ### Visual FoxPro中SQL命令语法及示例 #### 1. 准备 - **1.1 创建文档中所要使用到的数据库及环境配置** 在开始学习Visual FoxPro (VFP) 中的SQL命令之前,需要创建一个用于演示的基础数据库环境。以下是创建...

    JSP项目(sqlserver2000数据库)

    JSP项目包里面包含6个小项目,数据库是用sqlserver2000,解压后直接在MyEclipse里面导入JSP_E? 然后配置数据库跟tomcat则可以发布,里面包含网上购书(文件为本地上传(伪上传)),分页,用户登录注册等项目!

    SQL 语法 SQL 总结 SQL教程

    SQL 基础 SQL 首页 SQL 简介 SQL 语法 SQL select SQL distinct SQL where SQL AND & OR SQL Order By SQL insert SQL update SQL delete SQL 高级 SQL Top SQL Like SQL 通配符 SQL In SQL Between ...

    SqlQQ项目4.修改数据信息.sql

    SqlQQ项目4.修改数据信息.sql,SqlQQ项目4.修改数据信息.sql SqlQQ项目4.修改数据信息.sql,SqlQQ项目4.修改数据信息.sql SqlQQ项目4.修改数据信息.sql

    sqlserver自动生成sql语句工具sqlserver转oracle

    在IT行业中,数据库管理系统是核心组成部分,SQL Server和Oracle分别是微软和甲骨文公司推出的两款广泛应用的关系型数据库系统。在企业级应用中,有时需要在不同的数据库系统间进行数据迁移或兼容性处理,这就涉及到...

    VS05+SQL+Visio项目源码

    【标题】"VS05+SQL+Visio项目源码" 涉及的主要知识点是使用Visual Studio 2005(VS05)、SQL Server和Microsoft Visio在.NET环境中构建企业级应用的过程。这个项目可能包含从需求分析、系统设计到实际编码的完整流程...

    ASP.NET中新建MVC项目并连接SqlServer数据库实现增删改查示例代码.zip

    ASP.NET中新建MVC项目并连接SqlServer数据库实现增删改查: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/107024544

    sql server 导入超大SQL脚本文件

    在 SQL Server 2008 中,如果我们要导入超大 SQL 脚本文件(超过 10MB),使用 SQL Management Studio 查询工具可能无法打开脚本文件。这时,我们可以使用 osql 工具来导入超大 SQL 脚本文件。 osql 工具的使用格式...

    SqlParser C++实现的SQL语法解释器

    通过阅读这些文档,我们可以获取关于如何集成SqlParser到项目中、如何自定义解析规则以及如何处理特定SQL语法等具体信息。 总之,SqlParser C++实现的SQL语法解释器是一个强大的工具,它通过词法分析和语法分析解析...

    kettle链接SQL server驱动 sqljdbc

    总的来说,了解并正确使用SQL JDBC驱动对于Kettle与SQL Server的集成至关重要,特别是对于那些在Java环境中进行数据处理和分析的项目。正确选择和配置驱动,可以确保数据迁移、数据清洗和其他数据操作的顺利进行。在...

    云E办 yeb-sql文件.sql

    云E办项目的 sql 文件

Global site tag (gtag.js) - Google Analytics