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

Sql Server2005对t sql的增强之Cross Apply

Cross Apply使表可以和表值函数结果进行join,在下面的示例中建了两个表和一个表值函数,T_b的列a_ids中会存放a表的id用,分割的字符串连接;我们通过cross apply使T_a,T_b表通过splitIDs inner join 连接。请看示例:GO
if object_id('T_a','U') is not null
drop table T_a
GO
CREATE TABLE T_a(    id int unique not null,
    name varchar(50),
)
GO
if object_id('T_b',N'U') is not null
drop table T_b
GO
create table T_b
(
    id int unique not null,
    name varchar(10),
    a_ids varchar(100) null --要在这一列中存放t_a表的ID序列,这样做连第一范式都没有满足,但是有时候考虑性能或设计我们可能会像这么用
)
GO
--初始化数据
INSERT INTO T_a VALUES(1,'A-1')
INSERT INTO T_a VALUES(2,'A-2')
INSERT INTO T_a VALUES(3,'A-3')
INSERT INTO T_a VALUES(4,'A-4')
INSERT INTO T_a VALUES(5,'A-5')
INSERT INTO T_b VALUES(1,'B-1','1,2,4')
GO
--创建一个表值函数,用来拆分用逗号分割的数字串,返回只有一列数字的表
if object_id('splitIDs','TF') is not null
drop function splitIDs;
GO
create function splitIDs(
    @Ids nvarchar(1000)
)
returns @t_id TABLE (id bigint)
as
begin
    declare @i int,@j int,@l int,@v bigint;
    set @i = 0;
    set @j = 0;
    set @l = len(@Ids);
    while(@j < @l)
    begin
       set @j = charindex(',',@Ids,@i+1);
       if(@j = 0) set @j = @l+1;
       set @v = cast(SUBSTRING(@Ids,@i+1,@j-@i-1) as bigint);
       INSERT INTO @t_id VALUES(@v)
       set @i = @j;
    end
    return;
end
GO
--测试splitIDs的执行效果
select * from splitIDs('1,2,4,3')
select * from splitIDs('100')
select * from splitIDs(NULL)
GO
--使用cross apply获得t_b表中指定行对应的所有t_a表中的记录
select 


相关文档:

SQl server2000 学习总结

上周一java 的失利了,虽然还没正式开这门课,但我也自学了半年,这次的失利让我深刻认识了自己所存在的不足。为以后学习留下了宝贵的经验。熟话说:“不入虎穴,焉得虎子”。
后天,我要再一次去北大。这次考SQL SERVER2000 ,同样,这门还没学完,其实,是刚开始学。学到了第三章关系模式设计原理 , 虽然没有必胜的信心 ......

SQL RIGHT JOIN 关键字

SQL RIGHT JOIN 关键字
SQL RIGHT JOIN 关键字
RIGHT JOIN 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。
RIGHT JOIN 关键字语法
SELECT column_name(s)
from table_name1
RIGHT JOIN table_name2
ON table_name1.column_name=table_name2.column_name
注释:在某些数 ......

sql内置函数

一般地,日期格式说明符是不太敏感的。然而,当为了显示而说明日期格式、对于文本数据中的说明符等情况下,它就变得比较务实、具体了。以月份的名字为例,通过下面引用的结果解释一下该情况的效果:
TO_CHAR(SYSDATE,’MONTH’)=NOVEMBER
TO_CHAR(SYSDATE,’Month’)=November
TO_CHAR(SYSDATE,&rsq ......

SQL JOIN之完全用法

最近在做mysql的性能忧化,做到多表连接查询,比较头疼,看了一些join的资料,终于搞定,这里分享出来!
外联接。外联接可以是左向外联接、右向外联接或完整外部联接。    
  在   from   子句中指定外联接时,可以由下列几组关键字中的一组指定:  
 &n ......

Windows Mobile 连接SQL SERVER数据库 SqlClient

环境搭建:
   windows Mobile的开发环境的搭建(详细说明)
步骤概述:
1:PC上的SQL
SERVER
需要开启远程连接。
2:Moblie模拟器需要通过ActiveSync连接,使其能够通过PC连网。(如果是手机的话,需要能够通过无线网络连入互联网)
详细说明:
第一步:SQL SERVER一定要开启远程连接
    1 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号