- 浏览: 2057648 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (1409)
- asp/asp.net学习 (241)
- oracle (10)
- delphi (295)
- java (27)
- pb (1)
- 每日点滴 (49)
- 学习方法 (40)
- 思想方面 (104)
- C语言 (5)
- C++ (1)
- 代码重构经验 (5)
- 软件工程 (3)
- 数据库 (99)
- 英语学习 (3)
- mysql (1)
- 该关注的网站或者网页 (42)
- 总结 (7)
- 要去做的事情 (33)
- 算法 (1)
- 网络方面 (29)
- 随感 (96)
- 操作系统 (36)
- UML (12)
- 常用工具的使用 (55)
- 脚本 (7)
- 汇编 (62)
- 数据结构 (2)
- 财务 (38)
- 语文作文 (16)
- 法律 (1)
- 股票 (88)
最新评论
-
devwang_com:
可以,学习了~~
列出文件夹下所有文件夹的树形结构--Dos命令 tree的使用 -
hvang1988:
不管用啊 frxrprt1.PreviewForm.Pare ...
fastReport预览时嵌入到别的窗体 -
00915132:
我也有这个疑问,非常 感 谢
left join加上where条件的困惑 --SQL优化 -
zhuyoulong:
学习了,高效读书
软件架构师要读的书 -
nTalgar:
非常感谢分享!
Application.ProcessMessages用法:
摘自:http://topic.csdn.net/u/20100421/21/0D5D791B-AAE0-4944-9410-BAFA449D4522.html
详见博客地址:http://blog.csdn.net/feixianxxx/archive/2010/04/21/5513256.aspx
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->/*---------------------------------------------------------------- -- Author :feixianxxx(poofly) -- Date :2010-04-20 20:10:41 -- Version: -- Microsoft SQL Server 2008 (SP1) - 10.0.2531.0 (Intel X86) Mar 29 2009 10:27:29 Copyright (c) 1988-2008 Microsoft Corporation Enterprise Evaluation Edition on Windows NT 6.1 <X86> (Build 7600: ) -- CONTENT:SQL SERVER中一些特别地方的特别解法2 ----------------------------------------------------------------*/
--1.关于where筛选器中出现指定星期几的求解
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->--环境 create table test_1 ( id int, value varchar(10), t_time datetime ) insert test_1 select 1,'a','2009-04-19' union select 2,'b','2009-04-20' union select 3,'c','2009-04-21' union select 4,'d','2009-04-22' union select 5,'e','2009-04-23' union select 6,'f','2009-04-24' union select 7,'g','2009-04-25' go 我们一般通过 datepart(weekday )进行求解,比如求解星期2的记录 select * from test_1 where DATEPART(WEEKDAY,t_time+@@DATEFIRST-1)=2 /* id value t_time ----------- ---------- ----------------------- 3 c 2009-04-21 00:00:00.000 */ 这里涉及到 @@datefirst 这个系统变量,一般我们用来调节不同地方的日期习惯。 如果你觉得关于这个变量很难也懒得去依赖它调节,这里还有一种方法 你可以使用一个参照日期,通过相同星期数成7的倍数的原理进行查询 select * from test_1 where DATEDIFF(DAY,'1900-01-02',t_time)%7=0 /* id value t_time ----------- ---------- ----------------------- 3 c 2009-04-21 00:00:00.000 */
--2.关于在where筛选器中指定大小写查找的索引引用问题
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->--环境 --drop table test_2 create table test_2 ( id int identity(1,1), value varchar(10) ) insert test_2 select 'abc' union all select 'Abc' union all select 'ABC' union all select 'aBc' go create clustered index in_value on test_2(value) --我先要查找 值为'ABC'的记录 要区分大小写的 select * from test_2 where value COLLATE CHINESE_PRC_CS_AS ='ABC' 按CTRL+L看执行计划 发现时聚集索引扫描 这就说明它不是SARG,不考虑使用索引 解决方法: select * from test_2 where value COLLATE CHINESE_PRC_CS_AS ='ABC' and value='ABC' go 看执行计划,结果是聚集索引查找;
--3.自动全局临时表
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->在某些情况下,你可能需要跨会话的维护一些共享值,这里可以通过一些手段自动建立这样一个全局临时表够你使用 具体方法就是在master数据库中建立一个以sp_开头的特殊存储过程,并且使用'startup'标志此存储过程,这样每次重启数据库后都会自动运行此存储过程, 通过在存储过程中建立全局临时表,就达到了共享全局表的目的。 create procedure sp_Create_Global as create table ##Global ( name varchar(50), value sql_variant ) go sp_procoption 'sp_Create_Global','startup','true' go cmd->net stop mssqlserver cmd->net start mssqlserver insert ##Global values('var_1','987abc') select * from ##Global
--4.关于EXEC不支持动态批处理输出参数的解决方法
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->动态批处理中 EXEC 不像 sp_executesql 一样提供接口(这里就讲输出参数) 但是也有方法去解决这个问题 --环境: create table test_3 ( id int identity(1,1), value int ) insert test_3 select 1 union select 5 union select 9 go 1.全部写入动态字符串中 exec ( 'declare @n int select @N=count(*) from test_3 select @N ' ) 2.INSERT EXEC 形式 create table #cnt(n int) insert #cnt exec('select count(*) from test_3 ') declare @cnt int set @cnt=(select N from #cnt) select @cnt 3.动态批处理直接导入临时表 create table #cnt_2(n int) exec ( 'insert #cnt_2 select count(*) from test_3' ) declare @cnt int set @cnt=(select N from #cnt) select @cnt
--5.以十六进制的格式表示的二进制字符串转成二进制值
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->你可能会尝试直接转化 select CAST('Ox0123456abcd' as varbinary(110)) /*0x4F783031323334353661626364*/ 这里因为是字符串 所以值都是ASCII值再转化,所以并不是你想要的,下面是通过动态来解决这个转化 Declare @sql nvarchar(4000),@er varbinary(1000),@s varchar(1000) --设置十六进制的数字表示的二进制字符串 set @s='0x0123456abcd'; set @sql=N'set @n='+@s exec sp_executesql @sql,N'@n varbinary(1000) output',@n=@er output select @er /*0x00123456ABCD*/ --下面尝试用这个方法 将二进制的值转化成字符串 Declare @sql2 nvarchar(4000),@er2 varbinary(1000),@s2 varchar(1000) --设置十六进制的数字表示的二进制字符串 set @er2=0x0123456abcd; set @sql2=N'set @n='''+@er2+'''' exec sp_executesql @sql2,N'@n varchar(1000) output',@n=@s2 output select @s2 /*数据类型 nvarchar 和 varbinary 在 add 运算符中不兼容。。*/ 再尝试直接转化。。 declare @er3 varbinary(1000),@s3 varchar(2000) set @er3=0x0123456abcd; select convert(varchar(1000),@er3) /*
发表评论
-
sql 保留两位小数
2011-09-30 15:25 112851. ROUND(该函数,只是负责四舍五入到两位小数, ... -
Sql获取星期几的方法
2011-09-26 11:14 15911. select Datepart(weekday, ... -
SQL DATEDIFF语法及时间函数
2011-08-11 19:29 1492摘自:http://apps.hi.baidu.com/sha ... -
比较两个数据库的不同 包括表结构 视图 存储过程等
2011-07-22 18:02 1020比较两个数据库的不同 包括表结构 视图 存储过程等 h ... -
SQL Server 2005调试触发器
2011-07-10 18:35 1346摘自:http://blog.csdn.net/zwk_9/a ... -
如何查找所有包含了某个文本的存储过程
2011-06-09 11:16 819select name from sysobjects o, ... -
使用pivot将行转成列
2011-05-17 16:46 1120摘自:http://blog.csdn.net/happy66 ... -
如何监控SQL Server (2005/2008) 的运行状况
2011-04-15 14:01 1176如何监控SQL Server (2005/2008) 的运行状 ... -
SQL中的各种JOIN(inner join,full outer join,left join,right join,cross join )
2011-04-14 13:43 1014SQL中的各种JOIN(inner join,full ... -
TSQL中 Count() 函数使用的一点小技巧
2011-04-09 10:32 1906TSQL中 Count() 函数使用的一点小技巧 ... -
MsSql2005数据库熟悉
2011-04-01 17:32 16022011-4-11. 终于把那个模 ... -
知道了远程服务器的IP,以及端口号 如何连接
2011-04-01 12:33 1652问题描述:知道了远程服务器的IP,以及端口号 如何连接 ... -
varchar(max) 定义最大化 MsSql2005
2011-03-31 10:54 1161在存储过程里: declare @CreateScript ... -
在存储过程里使用N前缀 Mssql
2011-03-31 10:16 20532011-3-31 摘自:Mssql 2005的帮助页 ... -
经典的三表练习 sql
2011-03-25 14:05 1206create table s --学生表( sid in ... -
sql 这样写,有什么好处?函数列在字段里
2011-03-24 18:34 1232表格:aat 两个字段:a,b select dbo.get ... -
批量导出sql server 的视图、表、存储过程脚本
2011-03-18 17:39 3174批量导出sql server 的视图、表、存储过程脚本 ... -
asp.net连接Access SQL SERVER Oracle
2011-03-11 16:14 1167摘自:http://blog.csdn.net/m ... -
left join加上where条件的困惑 --SQL优化
2011-03-10 15:29 36982left join加上where条件的困惑 摘自:http: ... -
sql server行级锁,排它锁,共享锁的使用
2011-03-08 08:36 1473sql server行级锁,排它锁 ...
相关推荐
SQL Server试题含答案 一、简答题 1.1 SQL Server服务器中,给定表table1中有两个字段ID、LastUpdateDate,ID表示更新的事务号,LastUpdateDate表示更新时的服务器时间,请使用一句SQL语句获得最后更新的事务号。 ...
MySQL Server SQL面试题涵盖了许多核心概念,包括子查询、聚合函数、删除重复记录、联接操作、条件过滤以及窗口函数。下面将详细解释这些知识点: 1. **子查询**: - 题目1中,用一条SQL语句查询出每门课都大于80...
SQL Server数据库是计算机科学领域的重要组成部分,特别是在职业教育中扮演着不可或缺的角色。然而,由于其理论性强,对于中职学生来说可能存在一定的学习困难。本文作者林海燕探讨了几种提升学生学习SQL Server...
书中充满了此种结合不同技术的意想不到之解法,让懂得关键之人顿感妙趣横生,不懂奥妙之人,仍可借鉴引用。
这份文件包含六个 SQL 练习题,涵盖了多种数据库管理系统,包括 MySQL、MS-SQL Server 和 Oracle。下面是对每个问题的详细解释和解决方案: 问题 1 写出一条 SQL 语句:取出表 A 中第 31 到第 40 记录 解决方案: ...
某一天,在调试程序时突然发现,在附加数据库后...在csdn中找了半天,有个同志给出了第二种解法,使用ssms。具体在SSMS中运行以下命令: Alter AUTHORIZATION ON database::mydbname TO sa 把mydbname修改为实际的数据
例如,在SQL Server 2000中,一些特定的集合操作(如Intersect、Except)不能直接使用,而必须通过其他方式实现。为了适应实际的数据库环境,教师需要对教材中的例题进行适当的调整。 为了增强学生的实践能力,文章...
文章以SQL Server 2000为例,指出教材中某些例题的实现方式在实际环境中无法直接应用。例如,教材中用到的交集操作`Intersect`和差集操作`Except`在SQL Server 2000中需要转化为其他形式才能执行。比如,查询选修了...
6. **数据存储与查询**:学习如何与SQL Server 2000进行数据交互,包括如何建立数据库连接,执行SQL语句以及处理结果集,对于充分利用此工具至关重要。 总的来说,这个“数值模拟小工具”结合了Java编程、数值计算...
在MS SQL Server中,我们可以使用Common Table Expression (CTE) 结合递归来实现这个功能。以下是几种不同的解决方案: **解法1:列出某个部门代码以上的所有部门** ```sql WITH unitLevel AS ( SELECT id, code, ...
2. **SQL Server 2005/2008及更高版本的新解法** 随着SQL Server版本的更新,引入了一些新的聚合和XML函数,使得合并多行记录变得更简单。 - 方法一使用`OUTER APPLY`结合子查询,首先获取所有不同的`id`,然后...
#### 面试题7: SQL Server 最后更新事务号获取 ```sql SELECT ID FROM table1 WHERE LastUpdateDate = (SELECT MAX(LastUpdateDate) FROM table1) ``` 此SQL语句用于查询表`table1`中最后更新的事务号,通过子查询找...
原版用的是Sql Server,在这里我重写了一些语句,改成了我用的MySQL 8.0版本,同时加了一些我自己的编程习惯 使用根目录下的create_db.sql创建完整的数据库,一共4张表,36行专门设计的数据 sql源码位于src/文件夹,...
C#是一种强大的面向对象的编程语言,适合开发复杂的桌面和网络应用程序,而SQL Server则提供了可靠的数据存储和处理能力,可以高效地管理大量测量数据。通过这种方式,可以快速地处理和分析由Leica TM30测量机器人...
学生可以通过模仿或改进这些答案,增强自己在数据库管理系统(如MySQL、Oracle、SQL Server等)上的实际操作经验。 "习题答案.rar"文件则可能包含了所有理论习题的解答,帮助学生核对自己的答案,理解解题过程,找...
传统解法 用全量备份重搭实例,再利用增量binlog备份,恢复到误操作之前的状态。然后跳过误操作的SQL,再继续应用binlog。此法费时费力,不值得再推荐。 利用binlog2sql快速闪回 首先,确认你的MySQL ...
2. 数据库管理系统(DBMS):了解常见的DBMS,如Oracle、MySQL、SQL Server、Access等,以及它们的特点和应用场景。理解数据库管理系统的主要功能,如数据存储、事务管理、并发控制、安全性、备份与恢复等。 3. ...
在编程题目部分,可能包括了更复杂的项目,如数据库访问(使用ADO组件连接到Access或SQL Server)、图形绘制、多线程编程、网络通信等高级主题。这些实践项目将全面提升读者的编程能力和问题解决能力,使他们能够...
同时,本系统也使用 SQL Server 2005 数据库平台,提供了企业级的数据管理,能够提供更安全可靠的存储功能。 仓库管理系统分析 仓库管理系统的主要目的是解决仓库管理中的问题,例如货物的存入记录与取出记录不...