摘要: 1、\b是正则表达式规定的一个特殊代码,代表着单词的开头或结尾,也就是单词的分界处,不匹配这些单词分隔字符中的任何一个,它只匹配一个位置。假如你要找的是hi后面不远处跟着一个Lucy,你应该用\bhi\b.*\bLucy\b。2、“. ”匹配除换行符以外的任意字符3、后向引用,使用小括号指定一个子表达式后,匹配这个子表达式的文本(也就是此分组捕获的内容)可以在表达式或其它程序中作进一步的处理。默认情况下,每个分组会自动拥有一个组号,规则是:从左向右,以分组的左括号为标志,第一个出现的分组的组号为1,第二个为2,以此类推。你也可以自己指定子表达式的组名。要指定一个子表达式的组名,请使用这样的语法 阅读全文
posted @ 2012-03-10 19:14 kevin655 阅读(172) 评论(0) 推荐(0) 编辑
摘要: declare @max integer,@id integer declare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) >; 1 open cur_rows fetch cur_rows into @id,@max while @@fetch_status=0 begin select @max = @max -1 set rowcount @max delete from 表名 where 主字段 = @id fetch cur_rows into @id,@ 阅读全文
posted @ 2012-03-10 10:42 kevin655 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 1,用distinct来返回不重记录的所有值 (注意distinct关键字会影响后面所有的字段,同时它要方正前面,group by 必须放在having, order by 和 limit之前,不然会报错)select *, count(distinct name) from table group by name2,select A min(B),min(C),count(*) from [table] where [条件] group by A having [条件] order by A desc显示出来的字段和排序字段都要包括在group by 中,但显示出来的字段包有min,max, 阅读全文
posted @ 2012-03-10 10:22 kevin655 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 1、NEWID()另外一个应用是在Select出记录时随即选出N条记录比如:Select topN * from table order by newid()2、获得数据库中Name字段重复的行a,在A表中存在一个字段“name”, 而且不同记录之间的“name”值有可能会相同,现在就是需要查询出在该表中的各记录之间,“name”值存在重复的项;Select Name,Count(*) From A Group By Name Having Count(*) > 1 如果还查性别也相同大则如下: Select Name,sex,Count(*) From A Group By Name, 阅读全文
posted @ 2012-03-10 09:59 kevin655 阅读(536) 评论(0) 推荐(0) 编辑
摘要: 1.@@Identity 是你做的修改的最后一行IDENTITY (seed , increment ) ] (seed: 装载到表中的第一个行使用的值;increment :与前一个加载的行的标识值相加的增量值。)2、几个高级查询运算词A: UNION 运算符 UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。 B: EXCEPT 运算符 EXCEPT 运算符通过包括所有 阅读全文
posted @ 2012-03-10 09:46 kevin655 阅读(227) 评论(0) 推荐(0) 编辑