熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> SQL Server >> 正文

SQL Server 2000 數據庫應用技巧

2022-06-13   來源: SQL Server 

  怎樣刪除一個表中某個字段重復的列呀舉個例子
  表[table]
  id  name
   aa
   bb
   cc
   aa
   bb
   cc
  我想最後的表是這樣的
  id  name
   aa
   bb
   cc
  回答:
  將記錄存到臨時表#t中重復的記錄只存一條然後將臨時表#t中的記錄再存回原表中注意select distinct idclassname要包含你需要的所有字段否則有些字段就被刪掉了在查詢管理器裡執行下面代碼:
  
  SELECT DISTINCT id name
  INTO #t
  FROM table DELETE table
       INSERT
      INTO table
           SELECT *
          FROM #t
  
  
  找出既會VB又會PHP的人
  表是這樣的
  ID 員工 技能
   VB
   PHP
   ASP
   PHP
   ASP
   VB
   ASP
  要從這張表中找出既會VB又會PHP的人SQL該怎麼寫啊?
  回答:
  
  SELECT 員工 FROM [Table] WHERE 員工 IN(SELECT 員工 FROM [Table] WHERE 技能=VB ) AND 技能=PHP
  
  
  數據庫合並問題
  access裡的兩個表想讓兩個表的內容合並
  
  表[a]結構如下:
  [id]    編號    自動編號
  [name]   名稱    文本
  [price]   價格    數字
  [guige]   規格    文本
  [changjia] 生產廠家  文本
  [baozhuang] 包裝    文本
  [danwei]  單位    文本
  共有條記錄除了id和name字段其他均可以為空
  
  表[b]結構如下:
  [id]    編號    自動編號
  [name]   名稱    文本
  [price]   價格    數字
  [changjia] 生產廠家  文本
  [danwei]  單位    文本
  [xingzhi]  性質    文本
  共有條記錄除了id和name字段比表[a]少幾個字段但還多一個[xingzhi]的字符安其它均可以為空
  
  現在想生成一個新表[c]結構如下而且內容是兩個表的內容之和
  [id]    編號    自動編號
  [name]   名稱    文本
  [price]   價格    數字
  [guige]   規格    文本
  [changjia] 生產廠家  文本
  [baozhuang] 包裝    文本
  [danwei]  單位    文本
  [xingzhi]  性質    文本
  
  用sql語句也可以手工操作也好xml也好別管怎麼著吧怎麼實現呀哥們要郁悶壞了真要讓我們再輸入條記錄我就掛了
  回答:
  這樣
  
  insert into c(idname)
  select idname
  from a
  insert into c(idname)
  select max(id)+name
  from b
  
  更正
  如果直接在查詢分析器裡執行
  
  insert into c(name)
  select name
  from a
  insert into c(name)
  select name
  from b
  
  用union方法
  
  insert into [c] ([id] 編號自動編號)
  select [id]編號自動編號 from [a]
  union
  select [id]編號自動編號 from [b]
  
  asp的解決辦法
  
  <% 循環檢測a表
  Set rs = ServerCreateObect(ADODBRECORDSET)
     rsopen select * from a order by idconn
     Do while not rseof
       Call actAdd(rs(name))  調用像b表添加內容的函數!
     rsMoveNext
     Loop
  rsClose
  Set rs = Nothing
  
  Sub actAdd(txt)
  Dim ts sql
  sql = insert into b(name) values(& txt &)
  Set ts = ConnExecute(sql)
     tsClose
  Set ts = Nothing
  end Sub
  %>
  
  asp的解決辦法
  
  <%
  dim arr_temparr_temparr_data
  set rs=connexecute(select idnamepriceguigechangjiabaozhuangdanwei from a)
  arr_temp=rsgetrows
  rsclose
  set rs=nothing
  
  set rs=connexecute(select idnamepriceguigechangjiadanweixingzhi from b)
  arr_temp=rsgetrows
  rsclose
  set rs=nothing
  
  rem 開始處理
  redim arr_data(ubound(arr_temp)+ubound(arr_temp))
  rem 把兩個數組的內容復制進來
  這一部分自己寫了做兩個循環
  然後再存進數據庫
  %>
  
  最後轉一些經典的SQL語句:
  蛙蛙推薦一些精妙的SQL語句
  
  說明復制表(只復制結構源表名a 新表名b)
  
  SQL: select * into b from a where <>
  
  說明拷貝表(拷貝數據源表名a 目標表名b)
  
  SQL: insert into b(a b c) select def from b;
  
  說明顯示文章提交人和最後回復時間
  
  SQL: select atitleausernamebadddate from table a(select max(adddate) adddate from table where tabletitle=atitle) b
  
  說明外連接查詢(表名a 表名b)
  
  SQL: select aa ab ac bc bd bf from a LEFT OUT JOIN b ON aa = bc
  
  說明日程安排提前五分鐘提醒
  
  SQL: select * from 日程安排 where datediff(minutef開始時間getdate())>
  
  說明兩張關聯表刪除主表中已經在副表中沒有的信息
  
  SQL: 
  
  delete from info where not exists ( select * from infobz where infoinfid=infobzinfid )
  
  說明
  
  SQL: 
  
  SELECT ANUM ANAME BUPD_DATE BPREV_UPD_DATE
  
   FROM TABLE
  
    (SELECT XNUM XUPD_DATE YUPD_DATE PREV_UPD_DATE
  
      FROM (SELECT NUM UPD_DATE INBOUND_QTY STOCK_ONHAND
  
          FROM TABLE
  
         WHERE TO_CHAR(UPD_DATEYYYY/MM) = TO_CHAR(SYSDATE YYYY/MM)) X
  
        (SELECT NUM UPD_DATE STOCK_ONHAND
  
          FROM TABLE
  
         WHERE TO_CHAR(UPD_DATEYYYY/MM) =
  
            TO_CHAR(TO_DATE(TO_CHAR(SYSDATE YYYY/MM) ¦¦ /YYYY/MM/DD) YYYY/MM) ) Y
  
      WHERE XNUM = YNUM (+)
  
       AND XINBOUND_QTY + NVL(YSTOCK_ONHAND) <> XSTOCK_ONHAND ) B
  
  WHERE ANUM = BNUM
  
  說明
  
  SQL: 
  
  select * from studentinfo where not exists(select * from student where studentinfoid=studentid) and 系名稱=&strdepartmentname& and 專業名稱=&strprofessionname& order by 性別生源地高考總成績
  
  說明
  
  從數據庫中去一年的各單位電話費統計(電話費定額賀電化肥清單兩個表來源)
  
  SQL:
  
  SELECT auserper atel astandfee TO_CHAR(atelfeedate yyyy) AS telyear
  
     SUM(decode(TO_CHAR(atelfeedate mm) afactration)) AS JAN
  
     SUM(decode(TO_CHAR(atelfeedate mm) afactration)) AS FRI
  
     SUM(decode(TO_CHAR(atelfeedate mm) afactration)) AS MAR
  
     SUM(decode(TO_CHAR(atelfeedate mm) afactration)) AS APR
  
     SUM(decode(TO_CHAR(atelfeedate mm) afactration)) AS MAY
  
     SUM(decode(TO_CHAR(atelfeedate mm) afactration)) AS JUE
  
     SUM(decode(TO_CHAR(atelfeedate mm) afactration)) AS JUL
  
     SUM(decode(TO_CHAR(a
From:http://tw.wingwit.com/Article/program/SQLServer/201311/21973.html
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.