SQL Sever 学习系列之一
2024-09-27 20:43:29
本学习系列,从实际工作需要中积累,对于一个新手而言,写出几条漂亮的查询语句,应该是可以受启发的。
一、问题的需求是:员工薪酬发放,现有资金能发放多少人,哪些人应得?
/*所有的记录,从头开始累加,直到累加值大于一个给定值以后,返回之前计入累加的记录*/
先建立相关职工薪酬表,添加测试数据:
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
结果如下:
注:列(je)为员工应得薪酬,先假定老板只有现金400元,看看能发多少人,哪些人可以领取?
解决方案如下:
declare @i int,@sum1 decimal(8,2),@sum2 decimal(8,2)
set @i=1
set @sum2=400
set @sum1=0
while @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
end
select * from Table_1 where id<@i
结果如下:
此方法比较简单,还可以用储存过程实现。(读者可以试试)
二、sql server 2005中如何查询一个数据库中有多少张表?
--查询当前数据库下所有用户建立的表
SELECT name
,xtype
,status
,crdate
,userstat
,sysstat
,refdate
,version
FROM sysobjects WHERE xtype = 'U'
其中:
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 = 扩展存储过程
结果如图:
三、(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')
结果如下:
(2)在一个库中寻找一个字段归属的数据表
select b.name '表名称'
,a.xtype
,a.typestat
,a.xusertype
,a.language
,a.length
,b.crdate
from syscolumns a
inner join sysobjects b on a.id=b.id and b.xtype='U' and a.name='name'
结果如下:
最新文章
- Oracle Flashback和RMAN示例
- 接入Google Play SDK
- SQL2012删除作业失败的处理
- 批量删除SharePoint 2010的List中的item
- 干货分享:IBM StorwizeV7000部署与运维
- oracle 迁移到 mysql(结构和数据)
- Eclipse 中引用其他项目及项目打包
- Python中range的用法
- mysql dos启动出现1067错误的解决方法
- iOS强制切换横屏、竖屏
- 分享基于分布式Http长连接框架--代码模型
- Regularity criteria for NSE 5: $u_3,\om_3$
- 解决IDEA16闪退的问题
- windows下解决python输出utf-8中文
- 包含了重复的“Content”项。.NET SDK 默认包含你项目目录中的“Content”项。可从项目文件中删除这些项;如果希望将其显式包含在项目文件中,可将“EnableDefaultContentItems”属性设置为“false”
- Maven编译时跳过Test
- Servlet 实现网页计数器
- C语言实现将彩色BMP位图转化为二值图
- android studio 使用问题记录
- ant-design-pro Login 组件 实现 rules 验证