sql含义求解

select ename,sal from emp where sal not in(select distinct e1.sal from emp e1 join emp e2 on e1.sal<e2.sal);

查询sal最大的ename
这样写效率很低
select distinct e1.sal from emp e1 join emp e2 on e1.sal<e2.sal是查询出所有不是最大的记录
e1.sal<e2.sal 最大的那个个永远不会取到

然后not in就是取最大的
可以用分组解决
select ename,max(sal) from emp group by ename
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-03-13
查找出ename,sal 这两项 从表emp里面 条件是sal 不在 下面这个子查询查出的范围内
下面这个子查询: 查找出emp表的sal on是指定两个表之间的条件!
第2个回答  2013-03-13
查询 拿最高工资的员工的姓名和工资

这种写法稍微绕了点我改了一下
select ename,sal from emp where sal = (select max(sal) from emp);

两个功能是一样的,后面的那个应该比你传的那个语句效率高一点追问

恩我没说清楚问的问题 我知道查询的是啥结果 我想问此句sql的用法
例如select distinct e1.sal from emp e1 join emp e2 on e1.sal<e2.sal;为什么就能查出最大值

追答

恩 首先 你用了 distinct 可以排除 e1 表对象中 会有重复的最大薪水, 我知道你的疑问可能在那个表连接上 join emp e2 on e1.sal<e2.sal 这一句,
我想说的是:实践是最好的老师,当你不懂的时候就实践下

原理上:
表连接 会产生一个笛卡尔积 书上应该都有讲过, 这也是为什么我说这个方法效率不高的原因之一,你看一下两个表的笛卡尔积的结果 就知道为什么了, 相信你会很容易理解

本回答被提问者采纳
第3个回答  2013-03-13
从emp表里查询ename,sal这两个字段,条件是sal字段不在()里查询的结果!!

()里是:是个内查询,从emp表中查询 不重复(distinct)的sal字段。。。

这sql多半是个新手写的!!!
第4个回答  2013-03-13
括号里那段,是取不是最高工资的那些人的工资是多少

然后合起来就是,查最高工资的那个人的姓名以及工资

sql含义求解
这样写效率很低 select distinct e1.sal from emp e1 join emp e2 on e1.sal<e2.sal是查询出所有不是最大的记录 e1.sal<e2.sal 最大的那个个永远不会取到 然后not in就是取最大的 可以用分组解决 select ename,max(sal) from emp group by ename ...

为什么“SQL语言又称为结构化查询语言”求解???
SQL语言包括两种主要程序设计语言类别的陈述式:数据定义语言(DDL)与数据操作语言(DML)。

求解:SQL语句
--go是批量提交关键字,如果不写的话,sql会默认整体一起提交的。写上go,则语句提交,当前会话结束。下同 go declare @P1 int --声明一个变量 set @P1=192 --给变量赋值 exec sp_prepare @P1 output, NULL, N'SELECT QX FROM BSGROUP_QX WHERE GROUPID=''001'' AND DLDM=''93'...

菜鸟Sql语句求解 最好把每一句都解释 一下 不胜感激、、
USE [Student]GO 以下为系统自动生成的,一般没什么用,除非你改变了系统的环境 \/*** Object: Table [dbo].[C] Script Date: 04\/19\/2011 21:25:17 ***\/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO 建立数据表 CREATE TABLE [dbo].[C](指定字段名称,类型,长度,是否允许为...

如何用sql语句求解二元一次方程
如何用sql语句求解二元一次方程 方程组:Ax+By=C Dx+Ey=F 算法的来源是线性方程组求解的克莱默法则,具体原理参看百科或相关文库.①首先判断方程组解的存在性:当且仅当Δ=AE-BD≠0时,方程组有唯一的解;若等于0则输出:“方程组无解或有无穷多组解”;②如有唯一解,则求 x=(CE-BF)\/Δ y=...

T-SQL 语句求解
用左关联就好了,B当做主表,左边了A。select * from b left join a on b.id=a.id

关于SQL的问题,求解下面or后面的字句是什么道理。
or 是或者 就是 相当于2个 SELECT a1.Name, a1.Sales, COUNT(a2.sales) Sales_Rank FROM Total_Sales a1, Total_Sales a2 WHERE a1.Sales <= a2.Sales SELECT a1.Name, a1.Sales, COUNT(a2.sales) Sales_Rank FROM Total_Sales a1, Total_Sales a2 WHERE a1.Sales=a2.Sales and a...

SQL语句判断是否今天,200分求解!
aaaa=day(now())if len(aaaa)=1 then aaaa=0 判断是否为两位数的日期,如果是一位数,就在前面加个0。

SQL:这里的::是什么意思呢?费解
你好!下面有一个网页里面解释了“::”的意思! 希望对你有所帮助...regclass 是PostgreSQL中序列操作的函数!http:\/\/www.php100.com\/manual\/PostgreSQL8\/functions-sequence.html

SQL 语句查询求解
SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c B:right outer join: 右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。 C:full outer join: 全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所...

相似回答
大家正在搜