数据库开发

SQL Server返回随机记录

###常见的,不一定是最好的 说到返回随机行,很人一般会想到用GUID来排序,这是网上最常用的解决方案: Select Top 100 * From Sales.SalesOrderDetail Order By NewID() 但是这个方案的性能并...

ORACLE列值合并

合并列值最通用的方法就是写一个自定义函数去实现,这里介绍的是其他方法。 准备数据 CREATE TABLE MyTest(xType NUMBER,City varchar2(200)); / INSERT INTO MyTest(xType,City) SELECT 1,'北京' FROM dual UNION ALL SELECT 1,...

为什么要刷新视图

1.问题描述 有时候会出现这样的情况:从视图中select 出的数据和直接用创建视图的语句选出的数据有差异。 很多人第一次遇到此情况时,会非常惊讶...

SQL递归查询实战

假设某公司的人员组织结构如下图: 数据库表: CREATE TABLE ORG ( EMPID INT NOT NULL, EMPNAME VARCHAR(128) NOT NULL, MGRID INT NOT NULL ); GO INSERT INTO ORG VALUES(1, 'Jack', 0); INSERT INTO ORG VALUES(2, 'Mary', 1); INSERT INTO ORG VALUES(3, 'Tom', 1); INSERT INTO ORG VALUES(4, 'Ben', 2); INSERT INTO ORG VALUES(5, 'John', 3); INSERT...

奇葩的需求

生成测试数据: CREATE TABLE [dbo].[aa]( [a] [nchar](10) NULL, [b] [nvarchar](50) NULL, [c] [nvarchar](50) NULL ) ON [PRIMARY] GO INSERT INTO aa VALUES ('a','杨静,马丽萍', '美容师,美体师&...

SQL行转列与列转行

先准备点数据: CREATE TABLE Sell ( [Year] INT, [Quarter] NVARCHAR(10), Quantity INT ) GO INSERT INTO Sell SELECT 2006, 'Q1', 20 UNION ALL SELECT 2006, 'Q2', 15 UNION ALL SELECT 2006, 'Q2', 4 UNION ALL SELECT 2006, 'Q3', 12 UNION ALL SELECT 2006, 'Q4', 18 UNION ALL SELECT 2007, 'Q1', 10 UNION ALL SELECT 2007, 'Q2', 10 UNION ALL SELECT 2008, 'Q1', 8 UNION ALL...

关于Cross Join 和 Outer/Cross Apply

先为大家准备点数据: CREATE TABLE TA(Acol INT); GO INSERT INTO TA SELECT 1 UNION ALL SELECT 2; GO CREATE TABLE TB(Bcol1 INT,Bcol2 VARCHAR(10)); GO INSERT INTO TB SELECT -1, 'a' UNION ALL SELECT 1, 'b' UNION ALL SELECT 3, 'c'; GO 1. Cross Join Cross Join,交叉联接,其实就是笛卡尔积...

SQL 递归查询初体验

需求: 有如下一张职员上司表,要求给一个职工名,返回他直接或间接管理的所有职工名,写一个函数实现。 分析: 员工的下属也可能是其他员工的上司,即下...

SQL练习题(2)

设教务管理系统中有3个基本表: 学生信息表 S(SNO, SNAME, AGE, SEX) ,其属性分别表示学号、学生姓名、年龄和性别; 课程信息表 C(CNO, CNAME, CTEACHER) ,其属性分别表示课程号、课程名称...