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 ...
随机推荐
- Java泛型详解(转)
文章转自 importNew:Java 泛型详解 引言 泛型是Java中一个非常重要的知识点,在Java集合类框架中泛型被广泛应用.本文我们将从零开始来看一下Java泛型的设计,将会涉及到通配符处理 ...
- 【leetcode刷题笔记】Restore IP Addresses
Given a string containing only digits, restore it by returning all possible valid IP address combina ...
- 快乐学习 Ionic Framework+PhoneGap 手册1-1{创建APP项目}
快乐学习 Ionic Framework+PhoneGap 手册1-1 * 前提必须安装 Node.js,安装PhoneGap,搭建Android开发环境,建议使用真机调试 {1.1}= 创建APP项 ...
- MySQL几个重要的目录
MySQL几个重要的目录 1 数据库目录 /var/lib/mysql/ 2 配置文件 /usr/share/mysql(mysql.server命令及配置文件) 3 相关命令 /usr/bin(my ...
- BYTE、HANDEL、DWORD等的定义
有时候引入第三方库之后,可能会存在标题的这些变量没有定义,原来这些变量都定义在windows.h里面,包含进去就行了(Qt的MSVC编译器)
- 一步一步粗谈linux文件系统(三)----超级块(superblock)【转】
本文转载自:https://blog.csdn.net/fenglifeng1987/article/details/8302921 超级块是来描述整个文件系统信息的,可以说是一个全局的数据结构,可以 ...
- jenkins tomcat
tomcat增加用户配置: <role rolename="tomcat"/> <role rolename="role1"/> < ...
- python脚本发送电子邮件
#!/usr/bin/pythonimport smtplibimport stringHOST='smtp.qq.com'#HOST='mail.qq.com'SUBJECT='Test email ...
- composer启用国内镜像网站的配置更改办法
用法: 有两种方式启用本镜像服务: 将以下配置信息添加到 Composer 的配置文件 config.json 中(系统全局配置).见“例1” 将以下配置信息添加到你的项目的 composer.jso ...
- codeforces 798C.Mike and gcd problem 解题报告
题目意思:给出一个n个数的序列:a1,a2,...,an (n的范围[2,100000],ax的范围[1,1e9] ) 现在需要对序列a进行若干变换,来构造一个beautiful的序列: b1,b2, ...