博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DBA面试
阅读量:5928 次
发布时间:2019-06-19

本文共 2137 字,大约阅读时间需要 7 分钟。

 第一个题有二张表A,B。A表有二个列。NAME VARCHAR(20)AGE INT 。B表也有二列 NAME VARCHAR(20)GRADE INT 

A表中有三条记录,B表中有四条记录。问现在要用一条SQL语句根据A表中AGE字段把B表中的GRADE字段进行更新。条件为A表NAME和B表NAME相等。同样。B表中与A表没有相同NAME的记录不变。 
MSSQL2000 
第二问题。一个表中有二个列就以上A表为例。现在A表中有多例相同的记录。现在要把相同的记录删除只留一条。没有相同记录的记录不变。A表中可能四条xiao的记录。二条li的记录。一条zhang的记录 

 

IF OBJECT_ID('Table_A''U'IS NOT NULL

  DROP TABLE dbo.sample_table
GO
CREATE TABLE Table_A
(
NAME 
VARCHAR(20),
AGE 
INT 
);
GO
IF OBJECT_ID('Table_B''U'IS NOT NULL
  
DROP TABLE Table_B
GO
CREATE TABLE Table_B
(
NAME 
VARCHAR(20),
GRADE 
INT
);
GO
--Insert the data into Table_A
INSERT INTO Table_A VALUES('AName1',20);
INSERT INTO Table_A VALUES('AName2',21);
INSERT INTO Table_A VALUES('AName3',22);
--Insert the data into Table_B
INSERT INTO Table_B VALUES('AName1',22);
INSERT INTO Table_B VALUES('BName1',19);
INSERT INTO Table_B VALUES('AName3',18);
INSERT INTO Table_B VALUES('BName2',24);
GO
--type the data
print 'Table_A:';
SELECT*FROM Table_A;
print 'Table_B:';
SELECT*FROM Table_B;
/*
现在要用一条SQL语句根据A表中AGE字段把B表中的GRADE字段进行更新。
条件为A表NAME和B表NAME相等。同样。B表中与A表没有相同NAME的记录不变。
*/
UPDATE Table_B
SET GRADE=(SELECT AGE FROM Table_A WHERE Table_A.NAME=Table_B.NAME)
WHERE Table_B.NAME IN(SELECT Table_A.NAME FROM Table_A,Table_B WHERE Table_A.NAME=Table_B.NAME);
--display the data of Table_B
print 'Table_B:';
SELECT*FROM Table_B;
/*
第二问题。一个表中有二个列就以上A表为例。现在A表中有多例相同的记录。现在要把相同的记录删除只留一条。
没有相同记录的记录不变。A表中可能四条xiao的记录。二条li的记录。一条zhang的记录 
*/
--Before inserting the data into Table_A 
INSERT INTO Table_A VALUES('zhang',18);
INSERT INTO Table_A VALUES('zhang',18);
INSERT INTO Table_A VALUES('zhang',18);
INSERT INTO Table_A VALUES('zhang',18);
INSERT INTO Table_A VALUES('xiao',19);
INSERT INTO Table_A VALUES('xiao',19);
INSERT INTO Table_A VALUES('EricHu',22);
--Display the data of Table_A
PRINT 'Table_A';
SELECT*FROM Table_A;
--implementint the require....
SELECT DISTINCT*INTO #Temp_Table FROM Table_A 
SELECT*FROM #Temp_Table;
DELETE FROM Table_A;
INSERT INTO Table_A SELECT*FROM #Temp_Table;
DROP TABLE #Temp_Table;
SELECT*FROM Table_A;
DROP TABLE Table_A;
DROP TABLE Table_B;
GO

本文转自yonghu86 51CTO博客,原文链接:http://blog.51cto.com/yonghu/1321440,如需转载请自行联系原作者

你可能感兴趣的文章
jmeter高级用法例子,如何扩展自定义函数
查看>>
lvs
查看>>
通过jsp请求Servlet来操作HBASE
查看>>
JS页面刷新保持数据不丢失
查看>>
清橙A1202&Bzoj2201:彩色圆环
查看>>
使用data pump工具的准备
查看>>
springMVC---级联属性
查看>>
get和post区别
查看>>
crontab执行shell脚本日志中出现乱码
查看>>
Floodlight 在 ChannelPipeline 图
查看>>
leetcode-Word Ladder II
查看>>
VS2017调试闪退之Chrome
查看>>
做移动互联网App,你的测试用例足够吗?
查看>>
cmd.exe启动参数说明
查看>>
私活利器,docker快速部署node.js应用
查看>>
《随笔记录》20170310
查看>>
网站分析系统
查看>>
一站式解决,Android 拍照 图库的各种问题
查看>>
JavaScript匿名函数以及在循环中的匿名函数
查看>>
中国HBase技术社区第五届MeetUp ——HBase技术解析及应用实践(深圳站)
查看>>