SQL Sever 学习系列之一
本学习系列,从实际工作需要中积累,对于一个新手而言,写出几条漂亮的查询语句,应该是可以受启发的。
一、问题的需求是:员工薪酬发放,现有资金能发放多少人,哪些人应得?
先建立相关职工薪酬表,添加测试数据:
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'
结果如下:
SQL Sever 学习系列之一的更多相关文章
- SQL Sever 学习系列之三
SQL Sever 学习系列之三 SQL Server 学习系列之一(薪酬方案+基础) SQL Server 学习系列之二(日期格式问题) 五.经理今天刚谈到with的用法(with的 ...
- SQL Sever 学习系列之二
SQL Sever 学习系列之二 SQL Server 学习系列之一(薪酬方案+基础) 四.有关时间输出问题 select GETDATE() 日期时间 ----显示为:2013-07 ...
- SQL Server 学习系列之六
SQL Server 学习系列之六 SQL Server 学习系列之一(薪酬方案+基础) SQL Server 学习系列之二(日期格式问题) SQL Server 学习系列之三(SQL 关键字) SQ ...
- SQL Server 学习系列之五
SQL Server 学习系列之五 SQL Server 学习系列之一(薪酬方案+基础) SQL Server 学习系列之二(日期格式问题) SQL Server 学习系列之三(SQL 关键字) SQ ...
- SQL Server 学习系列之四(SQL 内幕)
SQL Server 学习系列之四(SQL 内幕) SQL Server 学习系列之一(薪酬方案+基础) SQL Server 学习系列之二(日期格式问题) SQL Server 学习系列之三(SQL ...
- 【SQL Server 学习系列】-- sql 随机生成中文名字
原文:[SQL Server 学习系列]-- sql 随机生成中文名字 ,) )) -- 姓氏 ,) )) -- 名字 INSERT @fName VALUES ('赵'),('钱'),('孙'),( ...
- SQL sever 学习,2016,5,31,(重点:100行以后,字符串操作。)
--别名和表达式select OrderDate,YEAR(OrderDate)as 订单年份from orders; --选择select OrderDate,YEAR(OrderDate)as 订 ...
- SQL数据库学习系列之一
数据库知识的重要性不言而喻,以下链接给出了最最基础知识的讲解. 第一讲:SQL 语法 第二讲:SQL SELECT 语句 第三讲:SELECT DISTINCT 语句 第四讲:SQL WHERE 子句 ...
- 【SQL Server 学习系列】-- 清除SQL Server 2012连接过的服务器名称
需要删除两个地方,删除前请注意备份! 1. %AppData%\Microsoft\Microsoft SQL Server\100\Tools\Shell\SqlStudio.bin 2. %A ...
随机推荐
- Linux Shell编程 sort、wc命令
sort命令:字符串排序 sort 命令可以依据不同的数据类型来进行排序.sort 将文件的每一行作为一个单位,相互比较.比较原则是从首字符向后,依次按 ASCII 码值进行比较,最后将它们按升序输出 ...
- gst-rtsp-server编译测试
最近在做dm368的开发,打算在368上移植个gst-rtsp-server.先在电脑上折腾了一天,终于是可以运行了. 我的虚拟机上早先已经安装了gstreamer-0.10(gstreamer版本太 ...
- systemverilog新增的always_comb,always_ff,和always_latch语句
在Verilog中,设计组合逻辑和时序逻辑时,都要用到always: always @(*) //组合逻辑 if(a > b) out = 1; else out = 0; always @(p ...
- QGIS3.0.3+Qt5.9+VS2015_x64编译
QGIS3.0.3+Qt5.9+VS2015_x64编译 参考:https://blog.csdn.net/u010670734/article/details/80241615 https://ww ...
- Docker 三剑客
Docker三剑客: Docker-Machine Docker Machine is a tool that lets you install Docker Engine on virtual ho ...
- JavaScript实现的功能
1.js事件阻止冒泡的应用 1)问题描述: 单机除了这两个元素,触发事件,: 可用阻止事件冒泡 2)解决方法: $('body').click(function(e){ $('#searchTree' ...
- AOP理解,待细看
http://jinnianshilongnian.iteye.com/blog/1474325
- Python3一些包的下载
首先在windows的Python扩展包网址:http://www.lfd.uci.edu/~gohlke/pythonlibs/ 这里举例下载opencv3.2.0的安装包 我的电脑是win10,6 ...
- js模板方法
模板方法模式,定义一个操作中的算法的骨架,而将一些步骤延迟到子类中.模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤.模板方法模式把不变行为搬到超类中,从而去除了子类中的重复代码 ...
- php get_magic_quotes_gpc()
magic_quotes_gpc函数在php中的作用是判断解析用户输入的数据,如包括有:post.get.cookie过来的数据增加转义字符“\”,以确保这些数据不会引起程序异常,特别是数据库语句因为 ...