Sql经典语句集萃:自增ID、行列转换与数据筛选

需积分: 9 1 下载量 97 浏览量 更新于2024-09-30 收藏 55KB DOC 举报
本文档汇集了丰富的SQL语句,主要涵盖SQL Server中的多个关键操作,包括但不限于数据插入、更新、查询以及特定功能如自增ID生成、行列转换、分页查询和表间字段查找等。以下将逐一详细介绍这些知识点: 1. **Identity(Int)的使用**: SQL Server中的`Identity`属性用于为表中的某一列自动分配连续的整数值,通常用在主键上。例如,`SelectIdField=Identity(Int)`语句会为新插入的记录生成一个唯一的序号,从1开始。同时,`@IRowCount=@@identity`可以用来获取刚刚插入一行后产生的行数,但需要注意,必须配合`Into`子句使用,否则会出现错误。 2. **行列转换(Table Merging)**: 对于两个关联表A(id, pid),可能需要将pid的值转换成新的二维格式(id, pid_list)。通过创建一个名为`fMerge`的自定义存储过程,利用`CAST`和字符串连接技术,可以根据id查询并合并pid列表,最后返回结果。 3. **分页查询**: 使用`SELECT TOP n * FROM (SELECT TOP m * FROM tablename ORDER BY columnname) a ORDER BY columnname DESC`可以实现按指定数量(n)获取前m条记录的分页效果,先按指定列进行排序,再取前m条,最后按降序排列。 4. **查找具有相同字段的表**: - 对于已知列名,可以通过`syscolumns`和`sysobjects`系统表查询,如`Select b.name as TableName, a.name as columnName`,条件是列名对应于用户指定的字段。 - 如果不知道列名,可以查询所有不同表中出现过的列名,如`Select o.name As TableName, s1.name As columnName`,结合`Exists`子句来检查列是否存在于其他表中。 5. **日期计算**: - SQL Server提供了`DATEADD`函数用于日期加减,例如获取一个月的第一天,可以使用`SELECT DATEADD(month, 1, your_date_column)`。这适用于处理日期范围、时间间隔计算等场景。 以上这些SQL语句在实际开发中非常常见,熟练掌握它们能有效提高数据处理的效率和准确性。通过这些实例,可以更好地理解和运用SQL Server的基本操作,从而提升数据库管理能力。