`
ileson
  • 浏览: 214517 次
  • 性别: 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  条件
分享到:
评论

相关推荐

    ERP项目数据库SQL文件

    ERP项目数据库SQL文件,ERP项目数据库SQL文件,ERP项目数据库SQL文件ERP项目数据库SQL文件ERP项目数据库SQL文件ERP项目数据库SQL文件,ERP项目数据库SQL文件,ERP项目数据库SQL文件ERP项目数据库SQL文件

    乐优商城项目.sql

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

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

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

    saas项目.sql

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

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

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

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

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

    C#执行sql文件 运行sql文件

    通过以上步骤,你可以在C#项目中实现自动运行.sql文件的功能,从而自动化数据库初始化、数据迁移或执行其他数据库维护任务。这个方法已经在实际项目中被证明是有效的,可以大大提高开发效率和减少手动操作的错误。在...

    Visual FoxPro中SQL命令语法及示例

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

    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

    SqlQQ项目1.创建QQ3个表.sql

    SqlQQ项目1.创建QQ3个表.sql,SqlQQ项目1.创建QQ3个表.sql ,SqlQQ项目1.创建QQ3个表.sql SqlQQ项目1.创建QQ3个表.sql

    SQLPrompt for SQLServer2016 智能提示插件 SQL2016 提示

    SQLPrompt for SQLServer2016 智能提示插件 SQL2016 提示 SQLPrompt最新版本 绿色版 SQL Prompt 是一款拥有SQL智能提示功能的SQL Server和VS插件。SQL Prompt能根据数据库的对象名称,语法和用户编写的代码片段自动...

    VS05+SQL+Visio项目源码

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

    SQLMonitor oracle跟踪SQL工具

    本文将深入探讨SQLMonitor的功能、使用方法及其在实际工作中的应用。 首先,SQLMonitor的核心功能在于跟踪SQL语句。当程序运行时,SQLMonitor能够实时捕获到执行的SQL语句,无论是DML(数据操纵语言)操作如INSERT...

    sql server 导入超大SQL脚本文件

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

    数据库sql项目

    数据库sql项目

    芋道sqlruoyi-vue-pro yudao 项目公众号模块相关SQL脚本

    芋道sqlruoyi-vue-pro yudao 项目公众号模块相关SQL脚本,目前ruoyi-vue-pro 项目虽然开源,但是公众号模块被屏蔽了,分享下公众号的sql相关脚本。

    kettle链接SQL server驱动 sqljdbc

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

    云E办 yeb-sql文件.sql

    云E办项目的 sql 文件

Global site tag (gtag.js) - Google Analytics