![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SQL学习
javatemptation
这个作者很懒,什么都没留下…
展开
-
【SQL精彩语句】SQL SERVER 2005中查询指定节点及其所有子节点的方法(表格形式显示)
<br />/*<br />标题:SQL SERVER 2005中查询指定节点及其所有子节点的方法(表格形式显示)<br />作者:爱新觉罗·毓华(十八年风雨,守得冰山雪莲花开) <br />时间:2010-02-02<br />地点:新疆乌鲁木齐<br />*/<br /><br />createtable tb(id varchar(3) , pid varchar(3) , name nvarchar(10))<br />insertinto tb values('001' , null , N'广原创 2011-03-06 16:00:00 · 511 阅读 · 0 评论 -
【原】一道SQL题(根据一个字段值的变化,在另一个字段中计数)
<br />题目如下:<br />if object_id('[tb]') is not null drop table [tb]<br />go<br />create table [tb]([value1] int,[value2] int)<br />insert [tb]<br />select 1,12 union all<br />select 1,13 union all<br />select 1,23 union all<br />select 0,14 u原创 2011-04-27 23:19:00 · 933 阅读 · 0 评论 -
【原】一道SQL题(根据一个字段值的后四位的两两差,生成对应的数据行)
<br />题目如下:<br />If not object_id('[tb]') is null<br /> Drop table [tb]<br />Go<br />Create table [tb]([Num] int,[Count2] int,[Code] varchar(10))<br />Insert tb<br />Select 92126,200,'100202' union all<br />Select 94752,100,'100202' union原创 2011-04-27 23:54:00 · 768 阅读 · 0 评论 -
【转】求某段时间内某一星期日期的天数的t-SQL函数
<br />/*<br />**********************************************<br />Program ID: FUN_GetDaysOfWeek<br />Purpose : 求某段时间内某一星期日期的天数<br />Author : Jesse<br />Date : 2011.02.19<br />**********************************************<br />*/<br原创 2011-05-06 21:58:00 · 884 阅读 · 0 评论 -
【转】简单的字符串分割函数
<br />CREATE FUNCTION dbo.f_splitstr(<br /> @str varchar(8000)<br />)RETURNS @r TABLE(id int IDENTITY(1, 1), value varchar(5000))<br />AS<br />BEGIN<br /> /* Function body */<br /> DECLARE @pos int<br /> SET @pos = CHARINDEX(',', @st原创 2011-05-10 21:26:00 · 398 阅读 · 0 评论 -
【转】SQL Server2000 存储过程的分页方案比拼
建立表:CREATE TABLE [TestTable] ( [ID] [int] IDENTITY (1, 1) NOT NULL , [FirstName] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL , [LastName原创 2011-07-15 08:35:43 · 363 阅读 · 0 评论 -
【转】管理岗位业务培训信息
问题描述:为管理岗位业务培训信息,建立3个表:S (S#,SN,SD,SA) S#,SN,SD,SA 分别代表学号、学员姓名、所属单位、学员年龄C (C#,CN ) C#,CN 分别代表课程编号、课程名称SC ( S#,C#,G ) S#,C#,G 分别代表学号、所选修的课程编号、学习成绩要求实现如下5个处理: 1. 使用标准S原创 2011-12-06 13:50:47 · 3157 阅读 · 0 评论 -
【转】图书借阅问题
问题描述:本题用到下面三个关系表:CARD 借书卡。 CNO 卡号,NAME 姓名,CLASS 班级BOOKS 图书。 BNO 书号,BNAME 书名,AUTHOR 作者,PRICE 单价,QUANTITY 库存册数 BORROW 借书记录。 CNO 借书卡号,BNO 书号,RDATE 还书日期备注:限定每人每种书只能借一本;库存册数随借书、还书原创 2011-12-06 13:48:00 · 2941 阅读 · 0 评论 -
SQL语法小结
一、基础1、说明:创建数据库CREATE DATABASE database-name 2、说明:删除数据库drop database dbname3、说明:备份sql server--- 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwin原创 2012-03-05 09:08:15 · 455 阅读 · 0 评论 -
SQL Server数据库中删除以'ABC'开头的表的处理
CREATE PROCEDURE dbo.DeleteTablesAS DECLARE @Name AS NVARCHAR(128) DECLARE curObject CURSOR FOR SELECT name FROM sysobjects WHERE type = 'U'原创 2014-03-14 16:15:58 · 1805 阅读 · 0 评论 -
【转】SQLServer汉字转全拼音函数
USE tempdb;go IF OBJECT_ID('Fn_GetQuanPin','Fn') IS NOT NULL DROP FUNCTION fn_GetQuanPin go create function [dbo].[fn_GetQuanPin](@str varchar(100)) returns varchar(8000) as b原创 2014-05-04 10:44:43 · 752 阅读 · 0 评论 -
【转】t-SQL打印杨辉三角
<br />use tempdb;<br />GO<br /><br />--我用存储过程和临时表来写,主要是想最后一个select出来结果,而且排成想要的三角想形状。<br />--由于BIGINT数据的限制,最多可以显示67层。<br />CREATE proc pr_YangHui<br />@c int<br />as<br />/* SQL实现显示杨辉三角 */<br />/* 版本: 1.0 */<br />/* 作者原创 2011-04-25 10:57:00 · 772 阅读 · 0 评论 -
【转】SQL Server 日期算法
一周的第一天select@@DATEFIRST<br />一个月的第一天 selectdateadd(mm,datediff(mm,0,getdate()),0)<br />本周的星期一 selectdateadd(wk,datediff(wk,0,getdate()),0)<br />一年的第一天 SELECTDATEADD(yy, DATEDIFF(yy,0,getdate()), 0) <br />季度的第一天 SELECTDATEADD(qq, DA原创 2011-04-17 10:45:00 · 396 阅读 · 0 评论 -
【转】动态sql语句基本语法
1 :普通SQL语句可以用Exec执行 eg: Select*from tableName Exec('select * from tableName') Exec sp_executesql N'select * from tableName'-- 请注意字符串前一定要加N 2:字段名,表名,数据库名之类作为变量时,必须用动态SQL eg: declare@fnamevarchar(20) set@fname='FiledName'Select@fnamefrom tabl原创 2011-04-13 20:28:00 · 338 阅读 · 0 评论 -
【SQL精彩语句】普通行列转换(完整版)
<br />/*<br />标题:普通行列转换(version 2.0)<br />作者:爱新觉罗.毓华(十八年风雨,守得冰山雪莲花开)<br />时间:2008-03-09<br />地点:广东深圳<br />说明:普通行列转换(version 1.0)仅针对sql server 2000提供静态和动态写法,version 2.0增加sql server 2005的有关写法。<br /><br />问题:假设有张学生成绩表(tb)如下:<br />姓名 课程 分数<br />张三 语文 74<br />张原创 2011-03-06 16:14:00 · 485 阅读 · 0 评论 -
【SQL精彩语句】按某一字段分组取最大(小)值所在行的数据
<br />--按某一字段分组取最大(小)值所在行的数据<br />--(爱新觉罗.毓华(十八年风雨,守得冰山雪莲花开) 2007-10-23于浙江杭州)<br />/*<br />数据如下:<br />name val memo<br />a 2 a2(a的第二个值)<br />a 1 a1--a的第一个值<br />a 3 a3:a的第三个值<br />b 1 b1--b的第一个值<br />b 3 b3:b的第三个值<br />b 2 b2b原创 2011-03-06 16:15:00 · 4429 阅读 · 0 评论 -
【SQL精彩语句】SQL SERVER 2000中查询指定节点及其所有子节点的函数(表格形式显示)
/*标题:SQL SERVER 2000中查询指定节点及其所有子节点的函数(表格形式显示)作者:爱新觉罗·毓华(十八年风雨,守得冰山雪莲花开) 时间:2008-05-12地点:广东深圳*/createtable tb(id varchar(3) , pid varchar(3) , name varchar(10))insertinto tb values('001' , null , '广东省')insertinto tb values('002' , '001' , '广州市')insertinto原创 2011-03-06 15:56:00 · 577 阅读 · 0 评论 -
【SQL精彩语句】合并列值
--合并列值--原著:邹建--改编:爱新觉罗.毓华(十八年风雨,守得冰山雪莲花开) 2007-12-16 广东深圳--表结构,数据如下:/*id value ----- ------ 1 aa 1 bb 2 aaa 2 bbb 2 ccc */--需要得到结果:/*id values ------ ----------- 1 aa,bb 2 aaa,bbb,ccc 即:group by id, 求value 的和(字符串相加)*/--1. 旧原创 2011-03-06 15:52:00 · 652 阅读 · 0 评论 -
【SQL精彩语句】普通行列转换
/*标题:普通行列转换(version 2.0)作者:爱新觉罗.毓华(十八年风雨,守得冰山雪莲花开)时间:2008-03-09地点:广东深圳说明:普通行列转换(version 1.0)仅针对sql server 2000提供静态和动态写法,version 2.0增加sql server 2005的有关写法。问题:假设有张学生成绩表(tb)如下:姓名 课程 分数张三 语文 74张三 数学 83张三 物理 93李四 语文 74李四 数学 84李四 物理 94想变成(得到如下结果): 姓名 语文 数学 物理 --原创 2011-03-06 16:06:00 · 357 阅读 · 0 评论 -
【SQL精彩语句】分解字符串并查询相关数据
<br />/*<br />标题:分解字符串并查询相关数据<br />作者:爱新觉罗.毓华(十八年风雨,守得冰山雪莲花开) <br />时间:2008-03-18<br />地点:广东深圳<br />说明:通过使用函数等方法分解字符串查询相关数据。<br />问题:通过分解一个带某种符号分隔的字符串在数据库中查找相关数据。<br />例如 @str = '1,2,3',查询下表得到记录1,4,5,6<br />ID TypeID<br />1 1,2,3,4,5,6,7,8,9,10,11,12<br /原创 2011-03-06 16:29:00 · 612 阅读 · 0 评论 -
【SQL精彩语句】分拆列值
<br />/*<br />分拆列值 <br />原著:邹建 <br />改编:爱新觉罗.毓华(十八年风雨,守得冰山雪莲花开) 2007-12-16 广东深圳 <br />有表tb, 如下: <br />id value <br />----------- ----------- <br />1 aa,bb <br />2 aaa,bbb,ccc <br />欲按id,分拆value列, 分拆后结果如下: <br />id value <br />----------- -------- <br />1 a原创 2011-03-06 16:33:00 · 455 阅读 · 0 评论 -
【转】取当前日期的这一周的周一或周日的日期
<br />取当前日期的这一周的周一或周日的日期<br /> <br />select convert(varchar(10),dateadd(week,datediff(ww,0,CURRENT_TIMESTAMP),0),120) as [周一日期];<br /><br />select convert(varchar(10),dateadd(day,6,dateadd(week,datediff(ww,0,CURRENT_TIMESTAMP),0)),120) as [周日日期];原创 2011-03-26 23:43:00 · 538 阅读 · 0 评论 -
【原】根据字段查来源表
use tempdb;select t1.name as [字段名称],t2.name as [表名称]from syscolumns as t1join sysobjects as t2 on t1.[id] = t2.[id]where t1.id in (select object_id(name) from sysobjects where type='U')and t1.name = '已知的字段名称';原创 2011-03-30 15:37:00 · 656 阅读 · 0 评论 -
【转】身份证判定函数及使用
<br /><br />use tempdb;<br />GO<br /> <br />create function f_getcityfromcid (@cid varchar(18)) <br />returns varchar(50) <br />as <br />begin<br /> declare @acity varchar(1000) <br /> set @acity = '____,____,____,____,____,____,____,____,____,___原创 2011-04-01 18:09:00 · 426 阅读 · 0 评论 -
数据库表或视图的字段对比
/*【数据库表字段对比用】SysObjects在数据库内创建的每个对象(约束、默认值、日志、规则、存储过程等)在表中占一行。只有在 tempdb 内,每个临时对象才在该表中占一行。SysColumns每个表和视图中的每列在表中占一行,存储过程中的每个参数在表中也占一行。该表位于每个数据库中。SysTypes每种数据类型和用户定义数据类型的详细信息。*/SELECT o.N原创 2014-05-27 11:06:43 · 784 阅读 · 0 评论