Welcome 微信登录

首页 / 数据库 / SQLServer

SQLSERVER的排序问题结果不是想要的

SQLSERVER的排序问题结果不是想要的

在论坛里经常有人问这样的问题: 同一个查询的结果集为什麽有时候是按他想要的顺序排列,有时候又不是,或者是在SQL2000里是这个顺序,到了SQL2005/2008又是那个顺序? 其实,只要语句里没有指定“order by”,SQLSERVER并不会按照顺序返回的。有可能你的表里有一个字段已经建立了索引 你想结果集按照那个建立了索引的字段排序,那么你不指定“order by”是没有问题的,因为表的存储顺序就是按照那个字段的顺序排好序了,所以可以不指定“ord...
oracle,mysql,SqlServer三种数据库的分页查询的实例

oracle,mysql,SqlServer三种数据库的分页查询的实例

MySql:MySQL数据库实现分页比较简单,提供了 LIMIT函数。一般只需要直接写到sql语句后面就行了。LIMIT子 句可以用来限制由SELECT语句返回过来的数据数量,它有一个或两个参数,如果给出两个参数, 第一个参数指定返回的第一行在所有数据中的位置,从0开始(注意不是1),第二个参数指定最多返回行数。例如:select * from table WHERE … LIMIT 10; #返回前10行select * from table WHERE...
mssql 高效的分页存储过程分享

mssql 高效的分页存储过程分享

最近在做一个几百万条数据的分页查询,研究了各种方案,在本机上用项目的实际数据库做测试,测试过程 is very 痛苦,不堪回首ing。现在废话不多说,直接上结果,相信这也是大多数搜索答案的人最愿意看的方式。 以下是存储过程的代码:复制代码 代码如下:CREATE PROCEDURE [dbo].[P_GridViewPager] ( @recordTotal INT OUTPUT, --输出记录总数 @viewName VARCHAR(800), --表...
sqlserver附加.mdf权限问题解决

sqlserver附加.mdf权限问题解决

问题:数据库附加.mdf文件时,提示无法打开物理文件,操作系统错误5:"5(拒绝访问)" 错误:5120。解决方案: 数据库当前账户对存放.mdf文件的文件夹权限不足,该文件夹权限角色加入Everyone。并赋予读写权限即可。人总要去积累生活、工作上的点点滴滴,慢慢的进步,以后回头看看,笑笑,顺便学学,人都说回忆才是最美的。...
Sql学习第一天——SQL UNION 和 UNION ALL 操作符认识

Sql学习第一天——SQL UNION 和 UNION ALL 操作符认识

关于SQL UNION 操作符 UNION 操作符用于合并两个或多个 SELECT 语句的结果集。 注意: 1.UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。 2.UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。 SQL UNION 语法(结果集没有重复值): 复制代码 代码如下: SELECT s FROM table1 U...
Sql学习第一天——SQL 将变量定义为Table类型(虚拟表)

Sql学习第一天——SQL 将变量定义为Table类型(虚拟表)

SQL 将变量定义为Table类型 在平时定义sql语句中的变量时通常我们定义的都是像char,varchar,nvarchar,int........,那如何让变量作为一个像虚拟表一样呢,其实很简单。 基本语法: 复制代码 代码如下: declare @t table(列名1 列的数据类型1 , 列名2 列的数据类型2 , ...............) insert into @t(列名1 ,列名2 ,...............) value...
Sql学习第二天——SQL DML与CTE概述

Sql学习第二天——SQL DML与CTE概述

DML (Data Manipulation Language) 与 CTE (Common Table Expression) 今天看书时遇到的两个缩写,不知道其含义,于是就百度了一下,特地在此记录下来,以便于下次复习使用。 关于DML (Data Manipulation Language): 数据操纵语言,用户能够查询数据库以及操作已有数据库中的数据的计算机语言。具体是指是UPDATE更新、INSERT插入、DELETE删除。 关于CTE (Comm...
Sql学习第三天——SQL 关于with ties介绍

Sql学习第三天——SQL 关于with ties介绍

关于with ties对于with ties一般是和Top , order by相结合使用的,会查询出最后一条数据额外的返回值(解释:如果按照order by 参数排序TOP n(PERCENT)返回了前面n(pencent)个记录,但是n+1…n+k条记录和排序后的第n条记录的参数值(order by 后面的参数)相同,则n+1、…、n+k也返回。n+1、…、n+k就是额外的返回值)。实验:实验用表(PeopleInfo):复制代码 代码如下:CREAT...
Sql学习第三天——SQL 关于CTE(公用表达式)的递归查询使用

Sql学习第三天——SQL 关于CTE(公用表达式)的递归查询使用

关于使用CTE(公用表表达式)的递归查询----SQL Server 2005及以上版本 公用表表达式 (CTE) 具有一个重要的优点,那就是能够引用其自身,从而创建递归 CTE。递归 CTE 是一个重复执行初始 CTE 以返回数据子集直到获取完整结果集的公用表表达式。 当某个查询引用递归 CTE 时,它即被称为递归查询。递归查询通常用于返回分层数据,例如:显示某个组织图中的雇员或物料清单方案(其中父级产品有一个或多个组件,而那些组件可能还有子组件,或...
sqlserver中delete、update中使用表别名和oracle的区别

sqlserver中delete、update中使用表别名和oracle的区别

昨天发现程序中数据分析的结果不对,重新进行分析后,原数据仍在,有值的字段被累计。心说,不对啊,是重新生成记录后才分析的啊。难道忘了DELETE了?查代码,发现有删除语句。于是在查询分析器中执行,报错。反复试几次,明白了,Delete From不认表名别名!回头想下,当初程序改完后主要是在Oracle中测的,SQLServer一直没细测。之所以要用别名,是因为where条件中需要用到子查询写一些条件,下面不写那么复杂,仅说明一下问题。结论:(ORACLE适用...
sql server 还原数据库时提示数据库正在使用,无法进行操作的解决方法

sql server 还原数据库时提示数据库正在使用,无法进行操作的解决方法

这个问题的原因在于有用户连接了当前要做还原的数据库,这里的用户甚至包括当前要做还原的用户。解决办法就是关闭与要还原数据库的所有连接。脚本之家小编推荐的一个方法:到服务里面重启下sqlserver服务即可。问题一描述:SQL Server数据库备份还原后,在数据库名称后会出现“受限制访问”字样问题二描述:在对SQL Server数据库进行还原时,提示:System.Data.SqlClient.SqlError:因为数据库正在使用,所以无法获得对数据库的独占...
Sql学习第四天——SQL 关于with cube,with rollup和grouping解释及演示

Sql学习第四天——SQL 关于with cube,with rollup和grouping解释及演示

关于with cube ,with rollup 和 grouping通过查看sql 2005的帮助文档找到了CUBE 和 ROLLUP 之间的具体区别:CUBE 生成的结果集显示了所选列中值的所有组合的聚合。ROLLUP 生成的结果集显示了所选列中值的某一层次结构的聚合。再看看对grouping的解释:当行由 CUBE 或 ROLLUP 运算符添加时,该函数将导致附加列的输出值为 1;当行不由 CUBE 或 ROLLUP 运算符添加时,该函数将导致附加列...
<< 121 122 123 124 125 126 127 128 129 130 >>