易截截图软件、单文件、免安装、纯绿色、仅160KB

【SQL SERVER中一些特别地方的特别解法2】


/*----------------------------------------------------------------
-- 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中一些特别地方的特别解法
----------------------------------------------------------------*/
 
--1.关于where筛选器中出现指定星期几的求解
 
--环境
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 )进行求解,比如求解星期的记录
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 这个系统变量,一般我们用来调节不同地方的日期习惯。
如果你觉得关于这个变量很难也懒得去依赖它调节,这里还有一种方法
 
你可以使用一个参照日期,通过相同星期数成的倍数的原理进行查询
select * from test_1 
where D


相关文档:

将表数据生成SQL脚本的存储过程

CREATE PROCEDURE dbo.UspOutputData
@tablename sysname
AS
declare @column varchar(1000)
declare @columndata varchar(1000)
declare @sql varchar(4000)
declare @xtype tinyint
declare @name sysname
declare @objectId int
declare @objectname sysname
declare @ident int
set nocount on ......

SQL交叉表查询 如何实现

请教大家一个有关SQL交驻报表查询问题,欢迎各位指教!
我想把图1的使用信息,使用SQL语句,实现如图2的结果。
表名
序号
字段名
a
1
c
a
2
d
a
3
e
a
4
f
a
5
g
b
1
h
b
2
i
b
3
j
b
4
k
b
5
l
c
1
m
c
2
n
c
3
o
c
4
p
c
5
q
图1
 
表名
序号
1
2
3
4
5 ......

解决SQL Server里sp_helptext输出格式错行问题

use Master 
go 
if object_id('SP_SQL') is not null 
  drop proc SP_SQL 
go 
create proc [dbo].[SP_SQL](@ObjectName sysname) 
as 
set nocount on ; 
declare @Print varchar(max) 
if exists(select 1 from syscomments  where ID=objec ......

SQL Server 2000中的触发器使用

可以定义一个无论何时用INSERT语句向表中插入数据时都会执行的触发器。
  当触发INSERT触发器时,新的数据行就会被插入到触发器表和inserted表中。inserted表是一个逻辑表,它包含了已经插入的数据行的一个副本。inserted表包含了INSERT语句中已记录的插入动作。inserted表还允许引用由初始化INSERT语句而产生的日志数据 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号