SQL 面试题第二季

SQL面试题精选

SQL 面试题第二季

在学习SQL语句,基本语法时,找些面试题学习稳固知识点,接接地气。下面的SQL面试题大概会有100题,分十季分享给大家,希望大家能坚持学下来,一定会有收获的!

第二季来了:

  1. ORACLE和DB2支持的大对象是什么?MS SQL支持的大对象是什么?

  2. 在MS SQL中image数据类型的存储容量是多少?

  3. 在MS SQL中varbinary数据类型的存储容量是多少?

  4. 编写查询,按条件合并两列为一列(i.e.我想从FullName或FirstName的列中找出不为空的雇员的名字)。

  5. 如何使用查询创建标识列?

  6. 哪个函数可以用来比较两个不同的日期?

  7. 查找超过40岁的所有员工。

  8. 编写查询,从EMPLOYEE表中找到第二高薪水的员工。

  9. 编写查询,不使用JOIN操作符,从EMPLOYEE表中查找名字开头是“s”和居住在城市“Mumbai”的所有员工。

  10. 如何从EMPLOYEE表中删除重复的员工条目?


答案:

  1. Oracle和DB2是BLOB(Binary Large Objects),CLOB(Character Large Objects)。MS SQL是image和varbinary。

  2. 最大为2G的可变长度的二进制数据。

  3. 最大为8000字节的可变长度的二进制数据。

  4. SELECT Name = CASE

    WHEN EMPLOYEE.FullName IS NOT NULL THEN EMPLOYEE.FullName

    WHEN EMPLOYEE.FirstName IS NOT NULL THEN EMPLOYEE.FirstName

    END

    FROM EMPLOYEE

  5. SELECT row_number() OVER(ORDER by TESTTABLE.p1) as SRNO,

    result = CASE

    WHEN TESTTABLE.p1 IS NOT NULL THEN TESTTABLE.p1

    WHEN TESTTABLE.p2 IS NOT NULL THEN TESTTABLE.p2

    END

    FROM TESTTABLE

  6. SELECT DATEDIFF(dd,'10‐10‐2017','15‐10‐2017');

  7. SELECT COUNT(EMPLOYEES.*) FROM EMPLOYEES WHERE EMPLOYEES.Age>40

  8. SELECT EMPLOYEE.*, MAX(EMPLOYEE.Salary) AS SalarySecondHighest

    FROM EMPLOYEE

    WHERE EMPLOYEE.Salary <

    (SELECT MAX(EMPLOYEE.Salary) AS SalaryFirstHighest FROM EMPLOYEE)

  9. SELECT EMPLOYEE.* FROM EMPLOYEE

    WHERE CHARINDEX('s',EMPLOYEE.name) = 1 AND

    CHARINDEX('Mumbai',EMPLOYEE.City) > 0

  10. 第一步,选择重复的员工记录并将其复制到holdTable表中:

    SELECT EMPLOYEE.EmployeeID, COUNT(EMPLOYEE.EmployeeID), *

    INTO HoldTable

    FROM EMPLOYEE

    GROUP BY EMPLOYEE.EmployeeID

    HAVING COUNT(EMPLOYEE.EmployeeID) > 1

    第二步,选择重复的行到另一个HoldDistinct表中:

    SELECT DISTINCT EMPLOYEE.*

    INTO HoldDistinct

    FROM EMPLOYEE, HoldTable

    WHERE EMPLOYEE.EmployeeID=HoldTable.EmployeeID

    第三步,从EMPLOYEE表中删除重复行:

    DELETE EMPLOYEE

    FROM EMPLOYEE, HoldTable

    WHERE EMPLOYEE.EmployeeID = HoldTable.EmployeeID

    第四步,插于不同条目:

    INSERT INTO EMPLOYEE(EmployeeID, FirstName, LastName, Salary, ...otherlist of columns)

    SELECT EmployeeID, FirstName, LastName, Salary, ...other list of columns)

    FROM HoldDistinct

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值