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'
结果如下:
作者: 天堂的鸽子
出处:https://www.cnblogs.com/zhangbc/p/3432960.html
版权:本文采用「署名-非商业性使用-相同方式共享 4.0 国际」知识共享许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述