几个sql题目

1 找到ppp表里面num最小的数,不能用min函数:

select top 1 num from ppp order by num;

如果用min函数到话,直接elect * from ppp where num=select Min(num) from ppp


2 选择表ppp2num重复的记录。

答: select * from ppp2 where num in(select num from ppp2 group by num having(count(num)>1))

<…… group by的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理。 WHERE是在分组前(查询后)筛选数据;HAVING是在分组后筛选数据。

例如:

……>

        这里嵌套语句的意思,是按照num个数分组,多少个不同的num就分成多少组,然后找里面num重复的。count(*) 表示查找数据库里面一共多少行。count(列名)表示当前列名下面多少个属性,不管重复不重复。

        那么这里按照num分组后,每个组里都是相同num的,然后查询所有组里面有多个相同num的,也就是一个组里num列下有多于1个数据的,count(num)值>1的。内层sql找到num,然后外层查所有数据。



5)3 写出复制表、拷贝表和四表联合的SQL语句。 

答:复制表(只复制结构,源表名:A,新表名:B): select * into B from A where 1=0   拷贝表(拷贝结构,源表名:A,新表名:B): select * into B from A  四表联查: select * from A,B,C,D where 关联条件

6)  

4     4 每一个部门的每个工种的工资最大值?

     select dept_id,job_cat,max(salary)from employee group by dept_id,job_cat; 


如果要从字符串“Hello world”中提取出“ello world”这样的结果,SQL语句: select lower(trim(‘H’from ‘Hello world’))from dual;


5.存储过程和函数的区别是什么?

答:存储过程是用户定义的一系列SQL语句的集合,涉及特定表或其他对象的任务,用户可以调用存储过程。而函数通常是数据库已定义的方法,它接受参数并返回某种类型的值,并且不涉及特定用户表。





原文地址:https://www.cnblogs.com/allenzhaox/p/3201764.html