易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 : sql

sql游标

因为要根据很复杂的规则处理用户数据,所以这里用到数据库的游标。平时不怎么用这个,写在这里纯粹为自己备个忘。
--将学籍号重复的放入临时表 tmp_zdsoft_unitive_code(除高中学段外)
drop table tmp_zdsoft_unitive_code;
select s.id ,sch.school_code,sch.school_name,s.student_name,s.unitive_code,s.identity_card,
c.section,c.acadyear,c.class_name ,s.now_state
INTO tmp_zdsoft_unitive_code
from student_info as s ,basic_schoolinfo as sch
,basic_class as c where s.unitive_code in(
select unitive_code from student_info where len(unitive_code)>0 and isdeleted='0' group by  unitive_code having count(1)>1
) and c.section<>3 and s.isdeleted='0' and s.school_id=sch.id and s.class_id=c.id order by unitive_code,student_name
--建立临时表
drop table tmp_zdsoft_stuid;
create table tmp_zdsoft_stuid(id varchar(32) not null);
--利用三层游标,检索学籍号相同,姓名身份证都不同的学生,存放到临时表tmp_stuid
declare @unitive_code  varchar(30),
  @student_name varchar(60),
& ......

[转]SQL行列互换

问题:假设有张学生成绩表(tb)如下:
姓名 课程 分数
张三 语文 74
张三 数学 83
张三 物理 93
李四 语文 74
李四 数学 84
李四 物理 94
想变成(得到如下结果): 
姓名 语文 数学 物理 
---- ---- ---- ----
李四 74   84   94
张三 74   83   93
-------------------
*/
create table tb(姓名 varchar(10) , 课程 varchar(10) , 分数 int)
insert into tb values('张三' , '语文' , 74)
insert into tb values('张三' , '数学' , 83)
insert into tb values('张三' , '物理' , 93)
insert into tb values('李四' , '语文' , 74)
insert into tb values('李四' , '数学' , 84)
insert into tb values('李四'& ......

SQL SERVER 2005 .NET UDF

using System;
using System.Text.RegularExpressions;
using Microsoft.SqlServer.Server;
public partial class UserDefinedFunctions
{
[Microsoft.SqlServer.Server.SqlFunction(IsDeterministic = true,IsPrecise = true)]
public static bool RegExIsMatch(string pattern,string matchString)
{
// 在此处放置代码
Regex reg = new Regex(pattern.TrimEnd(null));
return reg.Match(matchString.TrimEnd(null)).Success;
}
};
use AdventureWorks
GO
CREATE ASSEMBLY UDF
from 'C:\Users\Roy\Documents\Visual Studio 2008\Projects\UDF\UDF\bin\Release\UDF.dll'
CREATE FUNCTION fCLRExample
(
@Pattern nvarchar(max),
@MatchString nvarchar(max)
)
RETURNS BIT
AS EXTERNAL NAME UDF.UserDefinedFunctions.RegExIsMatch
SELECT ContactID,FirstName,LastName,EmailAddress,Phone
from Person.Contact
WHERE DBO.fCLRExample('[a-zA-Z0-9_\-]+@([a-zA-Z0-9_\-]+\.)+(com|org|edu|mil|net|cn)',EmailAddress)=1
   ......

关于SQLSERVER中更新Text类型SQL语句解析

 基本方法:
                   
UPDATETEXT { table_name.dest_column_name dest_text_ptr }//{ 要更新的表以及 text、ntext 或 image 列的名称,指向要更新的 text、ntext 或 image 数据的文本指针的值(由 TEXTPTR 函数返回)。dest_text_ptr 必须为数据类型 binary(16)。}
    { NULL | insert_offset }
     { NULL | delete_length }
     [ WITH LOG ]
     [ inserted_data
    | { table_name.src_column_name src_text_ptr } ]
新插入的数据可以是单个 inserted_data 常量、表名、列名或文本指针。
Update 操作 UPDATETEXT 参数 替换现有数据指定一个非空 insert_offset 值、非零 delete_length 值和要插入的新数据。删除现有数据指定一个非空 insert_offset 值、非零 delete_length 值和要插入的新数据。不指定要插入的新数据。插入新数据指定 insert_offset 值、为 0 的 delete_length 值和要插入的新数据。
为获得最佳性 ......

关于SQLSERVER中更新Text类型SQL语句解析

 基本方法:
                   
UPDATETEXT { table_name.dest_column_name dest_text_ptr }//{ 要更新的表以及 text、ntext 或 image 列的名称,指向要更新的 text、ntext 或 image 数据的文本指针的值(由 TEXTPTR 函数返回)。dest_text_ptr 必须为数据类型 binary(16)。}
    { NULL | insert_offset }
     { NULL | delete_length }
     [ WITH LOG ]
     [ inserted_data
    | { table_name.src_column_name src_text_ptr } ]
新插入的数据可以是单个 inserted_data 常量、表名、列名或文本指针。
Update 操作 UPDATETEXT 参数 替换现有数据指定一个非空 insert_offset 值、非零 delete_length 值和要插入的新数据。删除现有数据指定一个非空 insert_offset 值、非零 delete_length 值和要插入的新数据。不指定要插入的新数据。插入新数据指定 insert_offset 值、为 0 的 delete_length 值和要插入的新数据。
为获得最佳性 ......

(转)SQL经典面试题集(一)


第一题:
为管理业务培训信息,建立3个表:
S(S#,SN,SD,SA)S#,SN,SD,SA分别代表学号,学员姓名,所属单位,学员年龄
C(C#,CN)C#,CN分别代表课程编号,课程名称
SC(S#,C#,G) S#,C#,G分别代表学号,所选的课程编号,学习成绩
(1)使用标准SQL嵌套语句查询选修课程名称为’税收基础’的学员学号和姓名?
(2) 使用标准SQL嵌套语句查询选修课程编号为’C2’的学员姓名和所属单位?
(3) 使用标准SQL嵌套语句查询不选修课程编号为’C5’的学员姓名和所属单位?
(4) 查询选修了课程的学员人数?
(5) 查询选修课程超过5门的学员学号和所属单位?
drop table S;
drop table C;
drop table SC;
create table S
(
S# varchar(10),
SN varchar (25),
SD varchar (25),
SA int
)
create table C
(
C# varchar(10),
CN varchar (25)
)
create table SC
(
S# varchar(10),
C# varchar(10),
G int
Primary Key(S#, C#)
)
insert into S values ('10001','Students1','department1',23)
insert into S values ('10002','Students2','department1',24)
insert into S values ('10003','Students3','department2',25)
insert into ......

(转)SQL经典面试题集(二)

第十一题:
有表students(name,class,grade),请用标准sql语句完成
name class grade
张三 数学 81
李四 语文 70
王五 数学 90
张三 语文 60
李四 数学 100
王五 语文 90
王五 英语 81
要求: 用sql语句输出各门功课都大于80分的同学姓名?
create table students (
name varchar(25),
class varchar(25),
grade int
)
insert into students values ('张三','语文',20)
insert into students values ('张三','数学',90)
insert into students values ('张三','英语',50)
insert into students values ('李四','语文',81)
insert into students values ('李四','数学',60)
insert into students values ('李四','英语',90)
insert into students values ('王二','数学',81)
insert into students values ('王二','英语',90)
insert into students values ('李五','数学',83)
insert into students values ('李五','英语',90)
insert into students values ('李五','化学',90)
---选出所有成绩大于80分的学生姓名-----
------解法一------
select name from students group by name having min(grade)>80
------解法二------
select distinct N ......
总记录数:4346; 总页数:725; 每页6 条; 首页 上一页 [634] [635] [636] [637] 638 [639] [640] [641] [642] [643]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号