精品国产一级毛片大全,毛片一级在线,毛片免费观看的视频在线,午夜毛片福利

我要投稿 投訴建議

sql面試筆試題

時間:2022-07-21 15:41:26 面試試題 我要投稿
  • 相關(guān)推薦

sql面試筆試題

  SQL是一種特殊目的的編程語言,是一種數(shù)據(jù)庫查詢和 程序設(shè)計語言,各位大神,看看下面的sql面試筆試題吧!

sql面試筆試題

  sql面試筆試題

  1.一道SQL語句面試題,關(guān)于group by

  表內(nèi)容:

  20050509 勝

  20050509 勝

  20050509 負(fù)

  20050509 負(fù)

  20050510 勝

  20050510 負(fù)

  20050510 負(fù)

  如果要生成下列結(jié)果, 該如何寫sql語句?

  勝 負(fù)

  20050509 2 2

  20050510 1 2

  create table #tmp(rq var10),shengfu n1))

   into #tmp values('20050509','勝')

   into #tmp values('20050509','勝')

   into #tmp values('20050509','負(fù)')

   into #tmp values('20050509','負(fù)')

   into #tmp values('20050510','勝')

   into #tmp values('20050510','負(fù)')

   into #tmp values('20050510','負(fù)')

  1)select rq, sum(case when shengfu='勝' then 1 else 0 end)'勝',sum(case when shengfu='負(fù)' then 1 else 0 end)'負(fù)' from #tmp group by rq

  2) select N.rq,N.勝,M.負(fù) from (

  select rq,勝=count() from #tmp where shengfu='勝'group by rq)N inner join

  (select rq,負(fù)=count() from #tmp where shengfu='負(fù)'group by rq)M on N.rq=M.rq

  3)select a.col001,a.a1 勝,b.b1 負(fù) from

  (select col001,count(col001) a1 from temp1 where col002='勝' group by col001) a,

  (select col001,count(col001) b1 from temp1 where col002='負(fù)' group by col001) b

  where a.col001=b.col001

  2.請教一個面試中遇到的SQL語句的查詢問題

  表中有A B C三列,用SQL語句實(shí)現(xiàn):當(dāng)A列大于B列時選擇A列否則選擇B列,當(dāng)B列大于C列時選擇B列否則選擇C列。

  select (case when a>b then a else b end ),

  (case when b>c then b esle c end)

  from table_name

  3.面試題:一個日期判斷的sql語句?

  請取出tb_send表中日期(SendTime字段)為當(dāng)天的所有記錄?(SendTime字段為datetime型,包含日期與時間)

  select  from tb where datediff(dd,SendTime,getdate())=0

  4.有一張表,里面有3個字段:語文,數(shù)學(xué),英語。其中有3條記錄分別表示語文70分,數(shù)學(xué)80分,英語58分,請用一條sql語句查詢出這三條記錄并按以下條件顯示出來(并寫出您的思路):

  大于或等于80表示優(yōu)秀,大于或等于60表示及格,小于60分表示不及格。

  顯示格式:

  語文              數(shù)學(xué)                英語

  及格              優(yōu)秀                不及格

  select

  (case when 語文>=80 then '優(yōu)秀'

  when 語文>=60 then '及格'

  else '不及格') as 語文,

  (case when 數(shù)學(xué)>=80 then '優(yōu)秀'

  when 數(shù)學(xué)>=60 then '及格'

  else '不及格') as 數(shù)學(xué),

  (case when 英語>=80 then '優(yōu)秀'

  when 英語>=60 then '及格'

  else '不及格') as 英語,

  from table

  5.在sqlserver2000中請用sql創(chuàng)建一張用戶臨時表和系統(tǒng)臨時表,里面包含兩個字段ID和IDValues,類型都是int型,并解釋下兩者的區(qū)別?

  用戶臨時表:create table #xx(ID int, IDValues int)

  系統(tǒng)臨時表:create table ##xx(ID int, IDValues int)

  區(qū)別:

  用戶臨時表只對創(chuàng)建這個表的用戶的Session可見,對其他進(jìn)程是不可見的.

  當(dāng)創(chuàng)建它的進(jìn)程消失時這個臨時表就自動刪除.

  全局臨時表對整個SQL Server實(shí)例都可見,但是所有訪問它的Session都消失的時候,它也自動刪除.

  6.sqlserver2000是一種大型數(shù)據(jù)庫,他的存儲容量只受存儲介質(zhì)的限制,請問它是通過什么方式實(shí)現(xiàn)這種無限容量機(jī)制的。

  它的所有數(shù)據(jù)都存儲在數(shù)據(jù)文件中(.dbf),所以只要文件夠大,SQL    Server的存儲容量是可以擴(kuò)大的.

  SQL Server 2000 數(shù)據(jù)庫有三種類型的文件:

  主要數(shù)據(jù)文件

  主要數(shù)據(jù)文件是數(shù)據(jù)庫的起點(diǎn),指向數(shù)據(jù)庫中文件的.其它部分。每個數(shù)據(jù)庫都有一個主要數(shù)據(jù)文件。主要數(shù)據(jù)文件的推薦文件擴(kuò)展名是 .mdf。

  次要數(shù)據(jù)文件

  次要數(shù)據(jù)文件包含除主要數(shù)據(jù)文件外的所有數(shù)據(jù)文件。有些數(shù)據(jù)庫可能沒有次要數(shù)據(jù)文件,而有些數(shù)據(jù)庫則有多個次要數(shù)據(jù)文件。次要數(shù)據(jù)文件的推薦文件擴(kuò)展名是 .ndf。

  日志文件

  日志文件包含恢復(fù)數(shù)據(jù)庫所需的所有日志信息。每個數(shù)據(jù)庫必須至少有一個日志文件,但可以不止一個。日志文件的推薦文件擴(kuò)展名是 .ldf。

  7.請用一個sql語句得出結(jié)果

  從table1,table2中取出如table3所列格式數(shù)據(jù),注意提供的數(shù)據(jù)及結(jié)果不準(zhǔn)確,只是作為一個格式向大家請教。

  如使用存儲過程也可以。

  table1

  月份mon 部門dep 業(yè)績yj

  一月份      01      10

  一月份      02      10

  一月份      03      5

  二月份      02      8

  二月份      04      9

  三月份      03      8

  table2

  部門dep      部門名稱dname

  01      國內(nèi)業(yè)務(wù)一部

  02      國內(nèi)業(yè)務(wù)二部

  03      國內(nèi)業(yè)務(wù)三部

  04      國際業(yè)務(wù)部

  table3 (result)

  部門dep 一月份      二月份      三月份

  01      10        null      null

  02      10         8        null

  03      null       5        8

  04      null      null      9

  1)

  select a.部門名稱dname,b.業(yè)績yj as '一月份',c.業(yè)績yj as '二月份',d.業(yè)績yj as '三月份'

  from table1 a,table2 b,table2 c,table2 d

  where a.部門dep = b.部門dep and b.月份mon = '一月份' and

  a.部門dep = c.部門dep and c.月份mon = '二月份' and

  a.部門dep = d.部門dep and d.月份mon = '三月份' and

  2)

  select a.dep,

  sum(case when b.mon=1 then b.yj else 0 end) as '一月份',

  sum(case when b.mon=2 then b.yj else 0 end) as '二月份',

  sum(case when b.mon=3 then b.yj else 0 end) as '三月份',

  sum(case when b.mon=4 then b.yj else 0 end) as '四月份',

  sum(case when b.mon=5 then b.yj else 0 end) as '五月份',

  sum(case when b.mon=6 then b.yj else 0 end) as '六月份',

  sum(case when b.mon=7 then b.yj else 0 end) as '七月份',

  sum(case when b.mon=8 then b.yj else 0 end) as '八月份',

  sum(case when b.mon=9 then b.yj else 0 end) as '九月份',

  sum(case when b.mon=10 then b.yj else 0 end) as '十月份',

  sum(case when b.mon=11 then b.yj else 0 end) as '十一月份',

  sum(case when b.mon=12 then b.yj else 0 end) as '十二月份',

  from table2 a left join table1 b on a.dep=b.dep

  8.華為一道面試題

  一個表中的Id有多個記錄,把所有這個id的記錄查出來,并顯示共有多少條記錄數(shù)。

  select id, Count() from tb group by id having count()>1

  select  from(select count(ID) as count from table group by ID)T where T.count>1

  表形式如下:

  Year      Salary

  2000        1000

  2001        2000

  2002        3000

  2003        4000

  想得到如下形式的查詢結(jié)果

  Year      Salary

  2000      1000

  2001      3000

  2002      6000

  2003      10000

  sql語句怎么寫?

  連接查詢

  SELECT b.YEAR, SUM(a.salary) salary FROM hello a, hello b WHERE a.YEAR <= b.YEAR GROUP BY b.YEAR

  子查詢

  select year ,(select sum(salary) from hello as B where B.year<=A.year ) from hello as A

  1.用一條SQL語句查詢出每門課都大于80分的學(xué)生姓名

  name   kecheng   fenshu

  張三     語文       81

  張三     數(shù)學(xué)       75

  李四     語文       76

  李四     數(shù)學(xué)       90

  王五     語文       81

  王五     數(shù)學(xué)       100

  王五     英語       90

  A: select distinct name from table where name not in (select distinct name from table where fenshu<=80)

  2.學(xué)生表 如下:

  自動編號   學(xué)號   姓名課程編號課程名稱分?jǐn)?shù)

  1        2005001 張三 0001      數(shù)學(xué)    69

  2        2005002 李四 0001      數(shù)學(xué)    89

  3        2005001 張三 0001      數(shù)學(xué)    69

  刪除除了自動編號不同,其他都相同的學(xué)生冗余信息

  A: tablename where 自動編號 not in(select min(自動編號) from tablename group by 學(xué)號,姓名,課程編號,課程名稱,分?jǐn)?shù))

  一個叫department的表,里面只有一個字段name,一共有4條紀(jì)錄,分別是a,b,c,d,對應(yīng)四個球?qū),現(xiàn)在四個球?qū)M(jìn)行比賽,用一條sql語句顯示所有可能的比賽組合.

  你先按你自己的想法做一下,看結(jié)果有我的這個簡單嗎?

  答:select a.name, b.name

  from team a, team b

  where a.name < b.name

  請用SQL語句實(shí)現(xiàn):從TestDB數(shù)據(jù)表中查詢出所有月份的發(fā)生額都比101科目相應(yīng)月份的發(fā)生額高的科目。請注意:TestDB中有很多科目,都有1-12月份的發(fā)生額。

  AccID:科目代碼,Occmonth:發(fā)生額月份,DebitOccur:發(fā)生額。

  數(shù)據(jù)庫名:JcyAudit,數(shù)據(jù)集:Select  from TestDB

  答:select a.

  from TestDB a

  ,(select Occmonth,max(DebitOccur) Debit101ccur from TestDB where AccID='101' group by Occmonth) b

  where a.Occmonth=b.Occmonth and a.DebitOccur>b.Debit101ccur

  面試題:怎么把這樣一個表兒

  year   month amount

  1991   1     1.1

  1991   2     1.2

  1991   3     1.3

  1991   4     1.4

  1992   1     2.1

  1992   2     2.2

  1992   3     2.3

  1992   4     2.4

  查成這樣一個結(jié)果

  year m1   m2   m3   m4

  1991 1.1 1.2 1.3 1.4

  1992 2.1 2.2 2.3 2.4

  答案一、

  select year,

  (select amount from   aaa m where month=1   and m.year=aaa.year) as m1,

  (select amount from   aaa m where month=2   and m.year=aaa.year) as m2,

  (select amount from   aaa m where month=3   and m.year=aaa.year) as m3,

  (select amount from   aaa m where month=4   and m.year=aaa.year) as m4

  from aaa   group by year

  這個是ORACLE  中做的:

  select  from (select name, year b1, lead(year) over

  (partition by name order by year) b2, lead(m,2) over(partition by name order by year) b3,rank()over(

  partition by name order by year) rk from t) where rk=1;

【sql面試筆試題】相關(guān)文章:

經(jīng)典SQL語句大全07-21

面試試題精選08-08

外企面試英語面試試題09-26

社工面試面試試題及答案08-04

文員面試技巧與面試題08-09

Oracle面試試題09-26

SEO經(jīng)典面試試題09-26

護(hù)士面試試題09-26

java面試簡答試題09-25

Cisco的面試題09-25