1. 写一个关于一下题目test case :
关于以下方程:bool Fn(int a, int b, int c)a,b,c为三角形三边判断能否构成三角形能返回true否返回false.
1) A=0?,
B=0?
C=0?,任意条件满足则 Fn=1
2) If (a=b)
then if (a+b)<=c
then Fn=1
else Fn=0
endif
else if(a+c)<=b
then Fn=1
else Fn=0
endif
else if(b+c)<=a
then Fn=1
else Fn=0
endif
endif
2. 一个存储过程功能往一个表里插入数据并读出@@identity(最新自增列)现有10个客户端同时调用该存储过程@@identity否会有冲突
不会,因为数据库中有加锁限制。
Create Table StudentMarks
(ID Int,
name Varchar(10),
score Int,
subject Nvarchar(20))
Insert StudentMarks Select 1,'jiangjun', 60,N'语文'
Union All Select 2,'jiangjun', 60,N'语文'
Union All Select 3,'jiangjun', 70,N'数学'
Union All Select 4,'wangjian', 60,N'语文'
Union All Select 5,'wangjian', 40,N'数学'
Union All Select 5,'wangjian', 40,N'数学'
Union All Select 6,'weicao',
50,N'语文'
Union All Select 7,'weicao',
70,N'英语'
Union All Select 8,'weicao',
60,N'数学'
根据此表
1)删除里面除id外都相同记录
Delect from studentmarks where id not in{
Select id,distance(name,subject) from studentmarks };
Tracy says:
2)求所有科都及格同学。
Select * from studentmarks where subject>=60;
A B C D
2001 01 1 200
2001 02 2 300
2001 05 4 400
2002 01 1 10
2002 05 2 100
编写 SQL 语句使上表变成
A 01 02 05
2001 200 150 100
2002 10 50
2001 01 1 200
2001 02 2 300
2001 05 4 400
2002 01 1 10
2002 05 2 100
编写 SQL 语句使上表变成
A 01 02 05
2001 200 150 100
2002 10 50
SELECT A,
SUM(CASE B WHEN '01' THEN D/C ELSE null END) [01],
SUM(CASE B WHEN '02' THEN D/C ELSE null END) [02],
SUM(CASE B WHEN '05' THEN D/C ELSE null END) [05]
FROM 表
GROUP BY A
SUM(CASE B WHEN '01' THEN D/C ELSE null END) [01],
SUM(CASE B WHEN '02' THEN D/C ELSE null END) [02],
SUM(CASE B WHEN '05' THEN D/C ELSE null END) [05]
FROM 表
GROUP BY A