需求是这样的:
有个学生表
create table student
(
id int primary key,
name varchar2(200)
);
有个成绩表
create table score
(
id int , --对应与student 的 id(仅为测试,表结构也没好好设计)
math int,
eng int,
time varchar(200)
);
insert into student values(1,'lipf');
insert into student values(2,'lixw');
insert into student values(3,'liyf');
insert into score values(1,47,534,'2000');
insert into score values(1,35,43,'2001');
insert into score values(1,56,5,'2002');
insert into score values(1,47,674,'2004');
insert into score values(2,47,43,'2000');
insert into score values(2,35,21,'2001');
insert into score values(2,56,5,'2002');
insert into score values(2,47,32,'2004');
如果某个学生的数学成绩大于英语成绩(不管在那一年),则学生的记录在页面上要变红。
select distinct id, name,min(flag)over(partition by name) xx from
(
select a.id,a.name, b.flag from student a
inner join (select distinct id, sign(math-eng) flag from score ) b
on a.id=b.id
)
这样子就会在记录后边加上一列,表示是否变红。
如果大家有更好的办法,欢迎讨论
分享到:
相关推荐
DB2还允许一些独特的SQL写法,例如,`AnyOneTable`表示任意一个存在的表,这在某些特定情况下非常有用。但需要注意,这种用法并不推荐在生产环境中频繁使用,因为可能会带来不必要的性能影响。 变量的声明和赋值在...
1. **子查询和联接操作**:高级的SQL写法可能会利用子查询和多表联接来处理复杂的数据关系,比如在单个查询中同时处理多个表的数据,或者通过嵌套查询来获取特定条件下的子集。 2. **窗口函数**:MySQL 8.0引入了...
假设我们有一个名为`OrderBook`的表,其中包含订单信息,以及一个名为`Categories`的表,用于存储不同类别的信息。每当向`OrderBook`表中添加一条新的订单记录时,我们需要更新相应的类别统计数量。 ##### 触发器...
在提供的示例中,`RAISERROR`被用来抛出一个与数据库ID和名称相关的错误: ```sql RAISERROR ('The current database ID is:%d, the database name is: %s.', 16, 1, @DBID, @DBNAME) ``` 这里,`%d`和`%s`是格式...
本文将介绍10个高级SQL写法,这些技巧主要源自MySQL 8.0环境,适用于处理各种业务需求。 1. **ORDER BY FIELD() 自定义排序** 在MySQL中,除了常见的`ASC`和`DESC`用于排序外,`ORDER BY FIELD()`函数允许我们...
### SQL写法——数据修改:条件 INSERT ALL 与 INSERT FIRST 在数据库操作中,SQL(Structured Query Language)作为处理关系型数据库的标准语言,其功能强大且应用广泛。本文将详细介绍如何利用Oracle数据库中的...
在本例中,我们需要创建一个触发器来根据“是否会员”这一字段的值自动设置“金额”字段。 首先,我们需要了解触发器的基本结构。触发器由CREATE TRIGGER语句创建,指定触发器的名字、作用的表以及触发的时间点。在...
CTE是一种定义临时结果集的方法,这些结果集可以在同一个查询中多次引用。它并不是真正意义上的物理表,而是在查询过程中创建的一个虚拟表。CTE通过`WITH`关键字定义,并且可以包含任何合法的`SELECT`语句。CTE的...
首先,我们来看一下如何在一个SQL Server实例中查询另一个SQL Server实例的数据。这里假设我们需要从IP地址为192.168.1.1的SQL Server实例(数据库名为TT)中查询表test1的所有记录。 **SQL语句示例**: ```sql ...
在提供的代码示例中,创建了一个`SqlParameter`数组来传递到SQL命令中。下面逐一解析这些参数: ```csharp SqlParameter[] parms = new SqlParameter[] { new SqlParameter("@NodeID", UserRight.GetNodeId()), ...
首先,我们创建了一个名为`t`的表,包含`id`和`addTime`两个字段,`addTime`字段存储的是日期时间类型,默认值为'0000-00-00 00:00:00'。然后,我们插入了两条示例数据,分别是'2012-07-12 21:00:00'和'2012-07-22 ...
- **说明**:用户实例是在连接过程中创建的一个临时SQL Server实例。这允许每个用户都有自己的专用实例,提高了安全性并简化了管理。 #### 三、总结 - 了解和掌握不同的SQL Server 2008连接字符串格式对于开发高效...
3. **创建数据库链接**:创建一个指向 SQL Server 数据库的数据库链接,以便从 Oracle 数据库访问 SQL Server 数据库的数据: ``` CREATE DATABASE LINK pubs CONNECT TO sa IDENTIFIED BY sa USING 'pubs'; ``` ...
**SQL写法基础** 1. **创建表结构**:在Sybase IQ中,创建表时需要指定列的数据类型、长度和是否允许为空。例如: ```sql CREATE TABLE Sales ( ProductID INT NOT NULL, SaleDate DATE, Quantity SOLDouble, ...
Excel VBA SQL 语句范例 本资源摘要信息主要介绍 Excel VBA 中使用 SQL 语句进行数据...本资源摘要信息提供了两个实例,展示了如何使用 SQL 语句在 Excel VBA 中进行数据处理,并提供了一个经典写法范本供读者参考。
- 绑定变量名称一致:在同一个SQL语句中,即使在运行时赋予不同的值,使用相同名称的绑定变量也能够使得SQL语句共享。 性能测试例子: 文章中提到了一个具体的例子,通过对比两个存储过程的执行时间来展示绑定变量...
### 多行SQL导入ACCESS事务的代码写法 #### 知识点概述 本文档将详细介绍如何使用ADO(ActiveX Data Objects)技术结合事务处理功能,实现多行数据的高效导入到Microsoft Access数据库中的方法。在开发过程中,...
–接收键盘输入accept num prompt ‘请输入一个数字:’; declare –将屏幕输入的数字付给变量 pnum number := #begin if pnum = 0 then dbms_output.put_line(‘您输入的是0’); end if; if pnum = 1 then ...
5. **表的转换**:将E-R图转换为数据库表,每个实体对应一个表,属性变为表的列,主键用于唯一标识记录,外键用于连接不同表之间的关系。 6. **数据规范化**:规范化的目的是减少数据冗余,提高数据一致性。Dr. E.F...