博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL Sever 学习系列之一
阅读量:6427 次
发布时间:2019-06-23

本文共 1986 字,大约阅读时间需要 6 分钟。

   

    本学习系列,从实际工作需要中积累,对于一个新手而言,写出几条漂亮的查询语句,应该是可以受启发的。

     一、问题的需求是:员工薪酬发放,现有资金能发放多少人,哪些人应得?

     /*所有的记录,从头开始累加,直到累加值大于一个给定值以后,返回之前计入累加的记录*/

     先建立相关职工薪酬表,添加测试数据:

create table Table_1(  id int identity not null primary key,  name char(10),  je decimal(8,2),  date datetime) insert  into Table_1 values('张三',200,GETDATE())insert  into Table_1 values('李四',100,GETDATE())insert  into Table_1 values('王五',270,GETDATE())insert  into Table_1 values('张小三',400,GETDATE())insert  into Table_1 values('李四往',180,GETDATE())insert  into Table_1 values('王小五',910,GETDATE()) select * from Table_1
View Code

    结果如下:

     注:列(je)为员工应得薪酬,先假定老板只有现金400元,看看能发多少人,哪些人可以领取?

     解决方案如下:

declare @i int,@sum1 decimal(8,2),@sum2 decimal(8,2)set @i=1set @sum2=400set @sum1=0while @i<(select max(id) from Table_1) begin  set @sum1=@sum1+(select je from Table_1 where id=@i)  if @sum2<@sum1   begin    break  end  set @i=@i+1 endselect * from Table_1 where id<@i
View Code

     结果如下:

    此方法比较简单,还可以用储存过程实现。(读者可以试试)

    二、sql server 2005中如何查询一个数据库中有多少张表?

    --查询当前数据库下所有用户建立的表

SELECT name,xtype,status,crdate,userstat,sysstat,refdate,versionFROM sysobjects WHERE  xtype = 'U'
View Code
其中:       xtype char(2) 对象类型。可以是下列对象类型中的一种:        C = CHECK 约束        D = 默认值或 DEFAULT 约束        F = FOREIGN KEY 约束        L = 日志        FN = 标量函数        IF = 内嵌表函数        P = 存储过程        PK = PRIMARY KEY 约束(类型是 K)        RF = 复制筛选存储过程        S  = 系统表       TF = 表函数       TR = 触发器        U = 用户表       UQ = UNIQUE 约束(类型是 K)       V = 视图       X = 扩展存储过程
View Code

    结果如图:

     三、(1)查找一个数据库或表中所含的字段

     代码如下:

--zjm表的字段名称select name,xtype,typestat,length,status,type,usertype from   syscolumns   where   id=object_id( 'zjm')--zjm表的字段数select   count(name) 表的字段数  from   syscolumns   where   id=object_id( 'zjm')
View Code

     结果如下:

      (2)在一个库中寻找一个字段归属的数据表

select b.name '表名称' ,a.xtype,a.typestat,a.xusertype,a.language,a.length,b.crdatefrom syscolumns a inner join sysobjects b  on a.id=b.id and b.xtype='U' and a.name='name'
View Code

     结果如下:

转载于:https://www.cnblogs.com/zhangbc/p/3432960.html

你可能感兴趣的文章
linux系统安全设置
查看>>
golang 使用sql语句操作数据库的方法
查看>>
itext 中文乱码问题
查看>>
Lua4.0 正式开始
查看>>
我的友情链接
查看>>
Windows10如何开启鼠标显示指针轨迹
查看>>
配置H3C交换机实例(设置安全策略版,通过源IP地址对WEB登录用户进行控制)[连载之电子商务系统架构]...
查看>>
Mahout下个性化推荐引擎Taste介绍
查看>>
sql 语句 IP处理函数inet_aton()和inet_ntoa()
查看>>
《在实践中深入理解常见网络协议》
查看>>
bash并发
查看>>
Velocity初尝试
查看>>
浅谈IT技术支持
查看>>
js返回页面顶部常用方法
查看>>
改进fastjson的WriteClassName特性时的输出数据容量
查看>>
mysql, ssh实现非交互
查看>>
python学习小技巧分享(持续更新)
查看>>
Charles安装与使用
查看>>
XenApp5.3无法发现主机
查看>>
Kubernetes PV在Retain策略Released状态下重新分配到PVC恢复数据
查看>>