欢迎和大家交流技术相关问题:

邮箱: jiangxinnju@163.com

博客园地址: http://www.cnblogs.com/jiangxinnju

GitHub地址: https://github.com/jiangxincode

知乎地址: https://www.zhihu.com/people/jiangxinnju

-- 身份证验证(SQLServer)
-- 主要验证SQL数据库中已输入的15位 及18位 身份证号码的位数、出生年月日是否正确,可以过滤出大部分的输入错误。
select 身份证号
from 身份表
where (len(身份证号)<>15 and len(身份证号)<>18)
or (len(身份证号)=18 and (Substring(身份证号,7,2)<'19' or Substring(身份证号,7,2)>'20'
or (Substring(身份证号,11,2)>12)
or (Substring(身份证号,11,2) in (01,03,05,07,08,10,12) and Substring(身份证号,13,2)>31)
or (Substring(身份证号,11,2) in (04,06,09,11) and Substring(身份证号,13,2)>30)
or (Substring(身份证号,11,2)=02 and Substring(身份证号,13,2)>29)))
---------------------- 下面是针对 15位 及18位 身份证号码性别的验证语句 -------------------- Access 不支持 Substring 查询,可以替换为 mid 查询。
select 序号,姓名,身份证号,性别
from 身份表
where (((len(身份证号)=15) and (Substring(身份证号,15,1) in (1,3,5,7,9)) and 性别<>'男')
or ((len(身份证号)=15) and (Substring(身份证号,15,1) in (2,4,6,8,0)) and 性别<>'女'))
or (((len(身份证号)=18) and (Substring(身份证号,17,1) in (1,3,5,7,9)) and 性别<>'男')
or ((len(身份证号)=18) and (Substring(身份证号,17,1) in (2,4,6,8,0)) and 性别<>'女'))
----------------- 下面是针对 15位 及18位 身份证号码位数与出生年月日的验证 ------------- Access 不支持 Substring 查询,可以替换为 mid 查询
select 序号,姓名,身份证号,性别
from 身份表
where (len(身份证号)<>15 and len(身份证号)<>18)
or (len(身份证号)=15 and ((Substring(身份证号,9,2)>12)
or (Substring(身份证号,11,2) > 31)
or (Substring(身份证号,9,2) in (01,03,05,07,08,10,12) and Substring(身份证号,11,2)>31)
or (Substring(身份证号,9,2) in (04,06,09,11) and Substring(身份证号,11,2)>30)
or (Substring(身份证号,9,2)=02 and Substring(身份证号,11,2)>29))) -- 更改列名:
exec sp_rename '表名.原列名','新列名','column';
exec sp_rename 'student.Ssex','Sex','column'; -- 成绩统计语句(SQLServer)
CREATE TABLE stuscore
(
id int NOT NULL PRIMARY KEY identity(0000,1),
name varchar(20),
subject varchar(20),
score int,
stuid varchar(10)
) insert into stuscore(name,subject,score,stuid)
select '张三', '数学', 89, '1' UNION ALL
select '张三', '语文', 80, '1' UNION ALL
select '张三', '英语', 70, '1' UNION ALL
select '李四', '数学', 90, '2' UNION ALL
select '李四', '语文', 70, '2' UNION ALL
select '李四', '英语', 80, '2' UNION ALL
select '王五', '数学', 49, '3' UNION ALL
select '王五', '语文', 87, '3' UNION ALL
select '王五', '英语', 90, '3' --计算每个人的总成绩并排名
select name,sum(score) as allscore
from stuscore
group by name
order by allscore desc --计算每个人的总成绩并排名
select distinct t1.name,t1.stuid,t2.allscore
from stuscore t1,(select stuid,sum(score) as allscore from stuscore group by stuid) t2
where t1.stuid=t2.stuid
order by t2.allscore desc --计算每个人单科的最高成绩
select t1.stuid,t1.name,t1.subject,t1.score
from stuscore t1,(select stuid,max(score) as maxscore from stuscore group by stuid) t2
where t1.stuid=t2.stuid and t1.score=t2.maxscore --计算每个人的平均成绩
select distinct t1.stuid,t1.name,t2.avgscore
from stuscore t1,(select stuid,avg(score) as avgscore
from stuscore
group by stuid) t2
where t1.stuid=t2.stuid --列出各门课程成绩最好的学生
select t1.stuid,t1.name,t1.subject,t2.maxscore
from stuscore t1,(select subject,max(score) as maxscore from stuscore group by subject) t2
where t1.subject=t2.subject and t1.score=t2.maxscore --列出各门课程成绩最好的两位学生
select distinct t1.*
from stuscore t1
where t1.id in (select top 2 stuscore.id from stuscore where subject = t1.subject order by score desc)
order by t1.subject --学号 姓名 语文 数学 英语 总分 平均分
select
stuid as 学号,
name as 姓名,
sum(case when subject='语文' then score else 0 end) as 语文,
sum(case when subject='数学' then score else 0 end) as 数学,
sum(case when subject='英语' then score else 0 end) as 英语,
sum(score) as 总分,
(sum(score)/count(*)) as 平均分
from stuscore
group by stuid,name
order by 总分 desc --列出各门课程的平均成绩
select subject,avg(score) as avgscore
from stuscore
group by subject --声明变量以便后续调用
declare @tmp table(pm int,name varchar(50),score int,stuid int)
declare @id int --列出数学成绩的排名
insert into @tmp
select null,name,score,stuid
from stuscore
where subject='数学'
order by score desc
set @id=0
update @tmp set @id=@id+1,pm=@id
select * from @tmp
select DENSE_RANK () OVER(order by score desc) as row,name,subject,score,stuid
from stuscore
where subject='数学'
order by score desc --列出数学成绩在2-3名的学生
select t3.*
from
(
select top 2 t2.* from(select top 3 name,subject,score,stuid from stuscore where subject='数学'order by score desc) t2
order by t2.score
) t3
order by t3.score desc --求出李四的数学成绩的排名
insert into @tmp
select null,name,score,stuid
from stuscore where subject='数学'
order by score desc
set @id=0
update @tmp
set @id=@id+1,pm=@id
select * from @tmp where name='李四' --课程 不及格(-59) 良(-80) 优(-100)
select subject,
(select count(*) from stuscore where score<60 and subject=t1.subject) as 不及格,
(select count(*) from stuscore where score between 60 and 80 and subject=t1.subject) as 良,
(select count(*) from stuscore where score >80 and subject=t1.subject) as 优
from stuscore t1
group by subject --数学:张三(50分),李四(90分),王五(90分),赵六(76分)
declare @s varchar(1000)
set @s=''
select @s =@s+','+name+'('+convert(varchar(10),score)+'分)'
from stuscore
where subject='数学'
set @s=stuff(@s,1,1,'')
print '数学:'+@s -- 怎样删除外键约束(SQLServer)
--测试环境
--主表
create table test1(id int primary key not null,value int)
insert test1 select 1,2
go
--从表
create table test2(id int references test1(id),value int)
go --第一步:找出test2表上的外键约束名字
--Microsoft SQLServer 2000(及以上)
exec sp_helpconstraint 'test2'
--Microsoft SQLServer 2005(及以上)
select name
from sys.foreign_key_columns f join sys.objects o
on f.constraint_object_id=o.object_id
where f.parent_object_id=object_id('test2') --第二步:删除外键约束
alter table test2
drop constraint FK__test2__id__08EA5793

SQL Server常用语句的更多相关文章

  1. SQL server 常用语句

    SQL Server中常用的SQL语句   1.概述 2.查询概述 3.单表查询 4.连接查询 5.带有exists的相关子查询 6.SQL的集合操作 7.插入操作 8.删除操作 9.修改操作 10. ...

  2. sql server 常用的系统存储过程

      系统存储过程 说明 sp_databases 列出服务上的所有数据库 sp_helpdb 报告有关指定数据库或所有数据库的信息 sp_renamedb 更改数据库的名称 sp_tables 返回当 ...

  3. SQL SERVER常用语法记录

    用于记录SQL SERVER常用语法,以及内置函数. 以下语句包含: WITH 临时表语法 ROW_NUMBER()内置函数,我一般主要是用来分页.针对于查出来的所有数据做一个数字排序 分页的BETW ...

  4. 如何在SQL Server查询语句(Select)中检索存储过程(Store Procedure)的结果集?

    如何在SQL Server查询语句(Select)中检索存储过程(Store Procedure)的结果集?(2006-12-14 09:25:36) 与这个问题具有相同性质的其他描述还包括:如何 ...

  5. SQL Server分页语句ROW_NUMBER,读取第4页数据,每页10条

    SQL Server分页语句ROW_NUMBER,读取第4页数据,每页10条 SELECT Id,[Title],[Content],[Image] FROM ( SELECT ROW_NUMBER( ...

  6. SQL Server UPDATE语句的用法详解

    SQL Server UPDATE语句用于更新数据,下面就为您详细介绍SQL Server UPDATE语句语法方面的知识,希望可以让您对SQL Server UPDATE语句有更多的了解. 现实应用 ...

  7. SQL Server中语句的自动参数化

    原文:SQL Server中语句的自动参数化 use master go if exists(select * from sys.databases where name = 'test') drop ...

  8. sql server常用函数、常用语句

    一.常用函数 1.字符串函数 : charindex(':','abc:123')    --寻找一个字符在一段字符串中起始的位置 len('zhangsan')   --获取一段字符串的长度 lef ...

  9. 自己整理的常用SQL Server 2005 语句、

    --创建数据库 create database 数据库 go --打开数据库 use 数据库 --删除数据库 drop database 数据库 Go --创建数据表 create table 数据表 ...

随机推荐

  1. LightOj 1220 - Mysterious Bacteria (分解质因子x=b^p 中的 x 求最大的 p)

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1220 题意:已知 x=bp 中的 x 求最大的 p,其中 x b p 都为整数 x = ...

  2. kibana使用操作部分

      1.kibana的概念及特点. 概念:数据可视化平台工具 特点: - 灵活的分析和可视化平台 - 实时总结和流数据的图表 - 为不同的用户显示直观的界面 - 即时分享和嵌入的仪表板   2.kib ...

  3. Java Servlet(五):GenericServlet与Servlet、HttpServlet之间的关系(jdk7+tomcat7+eclipse)

    本篇主要记录下,对GenericServlet的作用理解,及其与Servlet/HttpServlet之间的关系. 示例完成业务: 1.新建一个login.jsp页面,要求改页面能输入username ...

  4. Leetcode: Largest BST Subtree

    Given a binary tree, find the largest subtree which is a Binary Search Tree (BST), where largest mea ...

  5. JS实时数据运算

    应朋友需要制作的一个小页面 <script type="text/javascript"> function cal(ida,idb,idc,idd) { var nu ...

  6. asp检测数字类型函数

    '**************************************************'函数ID:0014[检测ID是否为数字类型]'函数名:JCID'作 用:检测ID是否为数字类型' ...

  7. 《zw版·Halcon-delphi系列原创教程》 酸奶自动分类脚本(机器学习、人工智能)

    <zw版·Halcon-delphi系列原创教程>酸奶自动分类脚本(机器学习.人工智能) Halcon强大的图像处理能力,令人往往会忽视其内核,是更加彪悍的机器学习.人工智能.       ...

  8. 关于ClassLoader的一点小问题

    今天在看某框架的源码的时候,遇到一个使用URLClassLoader加载Servlet类的问题,当自己在eclipse里面做试验的时候,始终无法把Class加载成功.比如: ClassLoader c ...

  9. iOS 开发笔记-AFNetWorking https SSL认证

    一般来讲如果app用了web service , 我们需要防止数据嗅探来保证数据安全.通常的做法是用ssl来连接以防止数据抓包和嗅探 其实这么做的话还是不够的 . 我们还需要防止中间人攻击(不明白的自 ...

  10. 数据库设计 Assignment 02

    需求 1.0 请你试分析一下老师(教职工号,老师姓名,年龄),学生(学号,姓名,年龄),课程(课程号,课程名称,开课时间,上课地点)之间的关系, 注:多个老师可以同时教一门课 尝试画出该模型的E-R图 ...