- 博客(22)
- 资源 (1)
- 收藏
- 关注
原创 营收查询
select b.OperId , (select Opername from LuggageClerk a where a.operid=b.OperId) as Opername, AcctTypeName,AcctTypeId, --根据订单状态,确认是否计入费用 sum(case billstatusid when 3 the
2012-09-19 13:17:57 963
原创 HAVING 子句
在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。SELECT column_name, aggregate_function(column_name)FROM table_nameWHERE column_name operator valueGROUP BY column_nameHAVING aggregate_function(co
2012-09-18 18:56:12 339
原创 CREATE INDEX 语句
CREATE INDEX 语句用于在表中创建索引。在不读取整个表的情况下,索引使数据库应用程序可以更快地查找数据。 您可以在表中创建索引,以便更加快速高效地查询数据。用户无法看到索引,它们只能被用来加速搜索/查询。注释:更新一个包含索引的表需要比更新一个没有索引的表更多的时间,这是由于索引本身也需要更新。因此,理想的做法是仅仅在常常被搜索的列(以及表)上面创建索引。SQL
2012-09-18 18:52:23 608
原创 SELECT INTO 语句可用于创建表的备份复件
SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中。SELECT INTO 语句常用于创建表的备份复件或者用于对记录进行存档。SQL SELECT INTO 语法您可以把所有的列插入新表:SELECT *INTO new_table_name [IN externaldatabase] FROM old_tablename或者只把希望的列插入新
2012-09-18 18:48:33 575
原创 SQL 通配符
在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。SQL 通配符必须与 LIKE 运算符一起使用。在 SQL 中,可使用以下通配符:通配符描述%替代一个或多个字符_仅替代一个字符[charlist]字符列中的任何单一字符[^charlist]或者[!charlist]不在字符列中的任何单
2012-09-18 18:44:14 316
原创 查询优化
在统计表的行数时候,经常用到 select count(*),然而对于行数很多的大表,这样的查询速度将会很慢。因为这样的查询对表的每一行都会进行每个列的扫描。比较快的办法是 select count(0), 这样每一行就只是扫描行头信息。以上2种都是进行的全表扫描。更快的是 select count(唯一索引列), 这样的查询会走索引。
2012-09-18 16:26:25 340
原创 IN,NOT IN,EXISTS,NOT EXISTS的用法和差别
结构如下:ID 地址 地区 1 厦门 华东2 泉州 华东3 厦门 华东4 深圳 华南5 深圳 华南6 厦门 华东 .....................因为存在重复记录,比如 ID:1,3,4,5所以使用以下语句执行删除重复的记录,保留一条,但发现 NOT IN 的效率很慢,居然要等上10多分钟,怎办?有没有更好的办法delete from cidz where id NOT in (
2012-09-18 16:13:37 1415
转载 表连接 join和(+)、union和uion all
1.a. 并集UNIONSELECT column1, column2 FROM table1UNIONSELECT column1, column2 FROM table2b. 交集JOINSELECT * FROM table1 AS a JOIN table2 b ON a.name=b.namec. 差集NOT INSELECT * FROM tab
2012-09-18 16:04:40 11311
转载 SQL多表连接查询
本文主要列举两张和三张表来讲述多表连接查询。新建两张表:表1:student 截图如下:表2:course 截图如下:(此时这样建表只是为了演示连接SQL语句,当然实际开发中我们不会这样建表,实际开发中这两个表会有自己不同的主键。)一、外连接外连接可分为:左连接、右连接、完全外连接。1、左连接 left join 或 left outer joinSQ
2012-09-18 15:40:12 2876
原创 各种费用计算
-- 根据收费类型收费--按单收费 select s.Pk_LugFeeSubject_Id,s.LugFeeSubject_Name,s.LugFeeSubject_Price from lug.LugFeeSubject swhere s.Fk_LugSubjectFeeStyle_Id=1 and s.Fk_CarryStation_Id=@pCarryStaIdunio
2012-09-18 13:57:33 562
原创 In 的用法
update g set g.Fk_LugStatus_Id=g.Fk_LugStatus_Id*10+3, g.LugBill_AcctBillId=@pAcctBillId, g.Fk_Operator_Id=@pOperId, g.LugBill_AcceptTime=GETDATE() from lug.LugBill g,Lug.LugAcct
2012-09-18 13:46:34 389
转载 Sql server中DateDiff用法
DATEDIFF 函数 [日期和时间]功能 返回两个日期之间的间隔。语法 DATEDIFF ( date-part, date-expression-1, date-expression-2 )date-part :year | quarter | month | week | day | hour | minute | second | millisecond参数
2012-09-13 19:26:23 611
原创 SP 中的错误处理
在SQL Server之前的版本中,你需要在执行INSERT,UPDATE,DELETE之后立即检查全局变量“@@error”来处理异常,如果“@@error”变量不为零的话(表示有错误),就接着执行一些纠正动作。开发人员常常重复这种与业务逻辑无关的代码,这会导致重复代码块,而且需要与GOTO语句和RETURN语句结合使用。 结构化异常处理为控制具有许多动态运行时特性的复杂程序提供了一
2012-09-13 16:46:58 2214
转载 ROWCOUNT 用法
据传SQL 2005有了RowID的东西,可以解决TOP排序的问题。可惜还没有机会体验。在SQL 2000中写存储过程,总会碰到需要TOP的地方,而一旦碰到TOP,因为没办法把TOP后面的数字作为变量写到预编译的语句中去,所以只能够使用构造SQL,使用Exec来执行。不说效率的问题,心里也总觉得这个办法很笨。实际上,在SQL 2000中完全可以使用ROWCOUNT要害字解决这个问题。ROW
2012-09-13 16:10:06 2378
转载 SQL Server的事务和错误处理
事务: 事务是将一组任务封闭在一个执行单元中。当在这个执行单元中的所有任务都得以成功执行时,每个事务都以一个特定的任务开始和结束。如果这个执行单元中的任意一个任务执行失败时,这个事务就执行失败。因此,事务的执行结果只有两种:要么成功,要么失败。不完整的执行步骤也将倒致事务的执行失败。 用户可以使用下面的语句将两个或更多的T-SQL语句封装到一个事务中:Begin
2012-09-13 15:48:24 1286
转载 游标
游标使用 --创建临时表,查询数据 select objeid into #T from table1 --使用游标begin declare @saveId nvarchar(600) --存储游标的值 DECLARE vendor_cursor CURSOR FOR select objeid from #t --创建游标 OPEN vendor_cursor --
2012-09-13 11:20:54 342
原创 @@ERROR和@@ROWCOUNT的用法
1. @@ERROR当前一个语句遇到错误,则返回错误号,否则返回0。需要注意的是@ERROR在每一条语句执行后会被立刻重置,因此应该在要验证的语句执行后检查数值或者是将它保存到局部变量中以备将来使用。2. @@ROWCOUNT返回上一语句受影响的行数!和@ERROR一样的特性,在每一条语句执行后都将被重置,如果将来使用需要将变量保存到局部变量中。任何不返回的语句都将这个变量置为0!比如
2012-09-13 11:08:21 2328
原创 SQL Server创建、删除、修改、查看触发器示例
一:是一种特殊的存储过程,它不能被显式地调用﹐而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活。 可以用来对表实施复杂的完整性约束,保持数据的一致性。 当触发器所保护的数据发生改变时,触发器会自动被激活,并执行触发器中所定义的相关操作,从而保证对数据的不完整性约束或不正确的修改。 二:在SQL SERVER 2008中,有三种类型的触发器: (1)DML触发器:是指触发器在
2012-09-13 11:05:32 1877
原创 isnull用法
isnull:使用指定的替换值替换 null。语法 isnull ( check_expression , replacement_value )参数check_expression 将被检查是否为 null的表达式。check_expression 可以是任何类型的。replacement_value 在 check_expression 为 null时将返回的表达式。repl
2012-09-12 16:58:34 1525
转载 SQLServer2008 关于CASE WHEN
CASE WHEN的两种格式 1.简单Case函数CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END 2.Case搜索函数CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女'
2012-09-12 16:52:06 7365
转载 [Sql Server 2008 基础] With Ties. Over()子句
WITH TIES指定从基本结果集中返回额外的行,对于 ORDER BY 列中指定的排序方式参数,这些额外的返回行的该参数值与 TOP n (PERCENT) 行中的最后一行的该参数值相同。只能在 SELECT 语句中且只有在指定了 ORDER BY 子句之后,才能指定 TOP...WITH TIES。注意:返回的记录关联顺序是任意的。ORDER BY 不影响此规则来源
2012-09-12 16:37:01 929
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人