
SQL技巧
文章平均质量分 77
htl258_Tony
这个作者很懒,什么都没留下…
展开
-
查询某表时排除指定字段外的其它字段方法
假设某表有很多字段a,b,。。。。 select * from tb 可以取出所有字段 但是目前不需要a字段,其余全要,有简便方法吗? DECLARE @collist NVARCHAR(1000)SELECT @collist = ISNULL(@collist+,, )+QUOTENAME(name) FROM syscolumnsWHERE id = OBJECT原创 2009-03-07 11:28:00 · 2043 阅读 · 0 评论 -
高难度计算:计算最后一次离最近一次出现的NULL值连续有几个
原贴:http://topic.youkuaiyun.com/u/20100414/18/329cdadd-dffe-407b-9203-470b3ef133d8.html?seed=956126794 /*现有表TA 如下,ZA只能输入1或NULL,ZB只能输入2或NULL,ZC只能输入3或NULL,ZD只能输入4或NULL,null是空值id ZA ZB ZC ZD1 1 2 3 null2原创 2010-04-16 03:34:00 · 2561 阅读 · 4 评论 -
特殊最底级子节点求法
源贴:http://topic.youkuaiyun.com/u/20100417/22/3946fdde-01a7-4d35-b4be-8366dbdcb9e4.html?56752Name Code世界 001亚洲 001.001非洲 001.002美洲 001.003北美洲 001.003.001东亚 001.001.001西亚 001.001.002美国 001.003.001.001中国 001原创 2010-04-18 00:04:00 · 1443 阅读 · 0 评论 -
快速得到数据库中所有用户表的记录数(行数)
SELECT A.NAME AS 表名,B.ROWCNT AS 记录数FROM SYSOBJECTS A JOIN SYSINDEXES B ON A.ID=B.ID AND A.XTYPE=U AND B.INDID2原创 2010-04-18 21:29:00 · 1422 阅读 · 3 评论 -
SQL查询每行中最大值的技巧
---------------------------------------------------------------------------- Author : htl258(Tony)-- Date : 2010-04-23 08:08:36-- Version:Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Int原创 2010-04-23 08:28:00 · 5623 阅读 · 5 评论 -
数据层级显示(根据代码级次显示名称)
问题贴:http://topic.youkuaiyun.com/u/20100428/14/51caf51d-bfc7-4832-9783-2805e13085e5.html?11679 ---------------------------------------------------------------------------- Author : htl258(Tony)原创 2010-04-28 18:32:00 · 3409 阅读 · 2 评论 -
通过SQL查询SQL服务器和客户端IP地址
------------------------------------------------------------------------------------ Author : htl258(Tony)-- Date : 2010-06-26 23:02:30-- Version: Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86) -- Jul 9 2008 14:43:34 -- Cop原创 2010-06-26 23:13:00 · 13225 阅读 · 2 评论 -
SQL动态计算出表中公式示例
需求贴:http://topic.youkuaiyun.com/u/20100513/16/8f29d352-d946-47e8-9d0c-0bc1c7e8db0a.html?013311098457492643 ------------------------------------------------------------------------------------ Author : h原创 2010-05-13 21:20:00 · 11444 阅读 · 2 评论 -
又一表内公式计算应用实例
需求贴:http://topic.youkuaiyun.com/u/20100526/19/3aaa2ee0-7bb4-4c96-a6dd-a5811b2056d7.html?33002 现有一表Test如下Id Flag Amt(float型)1 A1 342 A2 45.23 A3 384 A4 835 A5 76.86 A6 237 A7 548 A8 119 A9 0.9810 A10 23现原创 2010-05-26 22:11:00 · 1381 阅读 · 0 评论 -
变通解决SQL视图中排序异常问题
------------------------------------------------------------------------------------ Author : htl258(Tony)-- Date : 2010-06-04 08:16:38-- Version: Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86) -- Jul 9 2008 14:43:34 -- Cop原创 2010-06-04 08:19:00 · 5816 阅读 · 1 评论 -
把动态SQL结果集转化为视图查询的方法(运行环境:SQL2005以上版本)
------------------------------------------------------------------------------------ Author : htl258(Tony)-- Date : 2010-06-10 01:49:18-- Version: Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86) -- Jul 9 2008 14:43:34 -- Cop原创 2010-06-10 01:55:00 · 5111 阅读 · 1 评论 -
利用算术(加减乘除)的方法实现从1到9计算等于100
原贴地址:http://topic.youkuaiyun.com/u/20100414/13/01a10c02-8230-4f0b-89d1-e0a51a64a97c.html?seed=1728387417123456789这九个按顺序排列的数,要求在它们之间插入若干个+,-,*,/ ,使其结果正好等于100如: 1*2*3*4+5+6+7*8+9=100 ----------------原创 2010-04-14 18:28:00 · 11066 阅读 · 1 评论 -
SQL2005生成系列号(行号)两种方式效率比较
--1.用CTE递归测试DBCC DROPCLEANBUFFERSDBCC FREEPROCCACHESET STATISTICS TIME ON;WITH t AS ( SELECT 1 AS num UNION ALL SELECT num+1 FROM t WHERE num100000)SELECT * FR原创 2009-09-20 17:41:00 · 1330 阅读 · 2 评论 -
SQL得到标识列的下一个标识值
SELECT IDENT_CURRENT(表名) + IDENT_INCR(表名)--最大标识值+标识值增量=下一个标识值原创 2009-09-21 23:38:00 · 994 阅读 · 0 评论 -
详解SQL Server的两个存储过程:sp_MSforeachtable/sp_MSforeachdb
1.简介:有时经常会碰到要求遍历所有表,改变表的属性时,这时可以用到这两个存储过程;还有要经常检查所有的数据库或用户表,比如: 检查所有数据库的容量; 看看指定数据库所有用户表的容量, 所有表的记录数...,这时一般处理的方式有:1.游标处理;2.用这两个存储过程; 如用 sp_MSforeachtable就可以非常方便的达到相同的转载 2009-03-08 23:30:00 · 1288 阅读 · 1 评论 -
一条语句搞定九九乘法表
select max(case when a max(case when a max(case when a max(case when a max(case when a max(case when a max(case when a max(case when a max(case when a from (原创 2009-03-22 09:01:00 · 3000 阅读 · 2 评论 -
使SQL关键字变大写的小工具
UppperTsqlKeyWord 使用说明 1. 把UppperTsqlKeyWord.rar 解压缩到你喜欢的地方, 2. 设置关键字keywords.ini 文件里面每一行都是一个SQL 关键字。注意:一个关键字独占一行大小写不要紧3. 添加UppperTsqlKeyWord到SQL Server Managemen转载 2009-04-18 00:12:00 · 3833 阅读 · 1 评论 -
一列数字随机求和等于某数的算法(整理)
现在有一个表Table1进行随机查询, 检索结果记录条数不限, 但是要求Num求和结果为一个固定值,如结果为15 ID NUM 1 5 2 3 3 2 4 5 5 4 6 5 7 3 8 2 9 4 10 3 IF OBJECT_ID([tb]) IS NOT NULL DROP TABLE [tb]原创 2009-04-21 13:34:00 · 4755 阅读 · 0 评论 -
top with ties用法
DECLARE @Temp TABLE(a int, b int) --a表示开始数字,b表示结束数字,如第一条记录表示从0到33的数字 insert into @Temp (a,b) values (0,33) insert into @Temp (a,b) values (16,46) insert into @Temp (a,b) values (0,17) insert into @Tem原创 2009-04-23 22:51:00 · 2987 阅读 · 0 评论 -
统计某个人的在线时间总和
if object_id(tb) is not null drop table tb go create table tb([VisitDate] datetime,[State] int,[Vistor] varchar(10))insert tb select 2008-05-12 00:00:00,0,张三union all select 2008-05-12 02:10:00转载 2009-04-27 20:16:00 · 1363 阅读 · 0 评论 -
随机重成100万不重复的随机编码
转 zjcxc最近在论坛看到有人问,如何快速生成100万不重复的8位编号,对于这个问题,有几点是需要注意的:1. 如何生成8位随机数,生成的数越随机,重复的可能性当然越小2. 控制不重复3. 考虑性能针对这个问题,我写了如下的示例来解决,希望能为有这类需求的人提供指导生成100万条8位不重复数据的示例USE tempdbGO-- 创建测试表CREATE TABLE tb(id c转载 2009-08-09 13:53:00 · 1991 阅读 · 1 评论 -
求一列数字的分区最大值与最小值
我有一个表 num 001 002 003 004 007 008 009 我想让他们变成区间形式 a b 001 004 007 009 如何才能办到,我需要的是一条sql语句 declare @t table(num varchar(10)) insert into @t select 001 insert into @t select 002 insert i原创 2009-06-02 17:35:00 · 1394 阅读 · 0 评论 -
SQL2005以上版本查询分析器显示行号设置方法
工具——选项——文本编辑器——所有语言,勾选[行号].原创 2009-08-20 10:17:00 · 1651 阅读 · 0 评论 -
存储过程或自定义函数调用存储过程的变通实现方法
CREATE PROC p_testasSELECT GETDATE() agoCREATE VIEW v_testAS SELECT * FROM OPENROWSET(SQLOLEDB.1,server=FI6/SQL2008;uid=sa;pwd=123,exec test11.dbo.p_test)goSELECT * FROM V_TEST/*a2009-09-01 11:0原创 2009-09-01 11:11:00 · 1568 阅读 · 0 评论 -
微软未公开的几个过程介绍及用法
<br />一些用在SQL 2000的企业管理GUI中,并且不打算用于其他的流程。微软已预计将其中的一些存储过程从未来的SQL Server版本中删除(或已经删除了)。虽然这些存储过程可能很有用并为你节省了很多时间,但是他们可以在任何时候改变他们的函数或简单的删除掉。<br /> 下面的图表显示了当许多存储过程从一个Microsoft SQL Server版本移入另一个版本时,引入了新的存储过程,而原来的一些则从安装包里删除了。大多数的存储过程,如果不是所有的,要求用户是系统管理员服务器角色以便执行这些存翻译 2010-06-17 10:45:00 · 4252 阅读 · 1 评论