1. 程式人生 > >sql中關於T-sql遊標的使用(附有例項)

sql中關於T-sql遊標的使用(附有例項)

select *from Student order by SName for read only open s_sur select @@CURSOR_ROWS fetch next from s_sur update Student set SAge ='50' where current of s_sur fetch last from s_sur close s_sur /**2. 宣告一個可滾動(SCROLL)的只讀遊標,資料來源是選擇表Student的姓名和學號,按照名字排序, 開啟該遊標,檢視全域性變數@@cursor_rows,提取第5行資料,並把資料的學號和姓名賦予給變數學號和姓名(對比上一題理解SCROLL
的作用); */ declare s_sur1 scroll cursor for select sno,sname from Student order by SName for read only declare @sno char(5),@sname varchar(8) open s_sur1 select @@CURSOR_ROWS fetch absolute 5 from s_sur1 into @sno,@sname select @sno SELECT @sname close s_sur1 /**3. 宣告一個具有靈敏性(INSENSITIVE)的遊標,資料來源是表Student的學號姓名,按照名字排序,開啟該遊標,定義兩個變數, 使用全域性變數@@FETCH_STATUS(0
FETCH 語句成功,-1 FETCH 語句失敗或此行不在結果集中,-2 被提取的行不存在)與WHILE迴圈遍 歷遊標所在資料集賦值給兩個變數,並print變數。*/ declare s3_surl insensitive scroll cursor for select sno,sname from Student order by SName open s3_surl declare @sno1 char(5),@sname1 varchar(8) declare @x int select @x= @@CURSOR_ROWS print @x while(@x>0) begin
set @[email protected]1 fetch next from s3_surl into @sno1,@sname1 print @sno1 print @sname1 end close s3_surl /**4. 宣告一個可更新的遊標,資料來源是表Student的所有情況,開啟該遊標,提取第1行資料,並把當前行的年齡改為50, 然後檢視基本表看是否已經修改;*/ declare s5_surl scroll cursor for select *from Student for update of sage open s5_surl fetch first from s5_surl update Student set SAge=50 where current of s5_surl close s5_surl /**5. 利用遊標查詢全部學生的選課資訊,顯示格式如下所示:**/ declare stu scroll cursor for select s.SNo,sname ,cname,score from Student s,sc,course c where s.SNo=sc.SNo and sc.CNo=c.CNo group by s.SNo,sname ,cname,score open stu declare @sno2 char(5),@sno3 char(5),@sname2 varchar(8),@cname varchar(40) declare @score numeric(3,1) declare @x1 int select @[email protected]@CURSOR_ROWS set @sno3='0' while(@x1>0) begin set @[email protected]1 fetch next from stu into @sno2,@sname2,@cname,@score if(@[email protected]) begin print @sno2+' '[email protected] end print @sname2+' '+'選修了:'[email protected]+' 成績為:'+convert(char(4),@score) set @[email protected] end close stu /*6. 試試看能不能宣告一個有SCROLL或INSENSITIVE的可更新的遊標。 **/ declare s1 insensitive scroll cursor for select sno,sname from Student order by SName for update of stage /**7. 統計“資料結構”課程考試成績的各分數段的分佈情況,即不及格、及格、中等、良好和優秀的人數。**/ select SUM(case when score>=0 and score <60 then 1 else 0 end )as 不及格, SUM(case when score >=60 and Score<75 then 1 else 0 end)as 中, SUM(case when score >= 75and Score<85 then 1 else 0 end)as 良, SUM(case when score >= 85 then 1 else 0 end)as 優秀 from sc where sc.CNo=(select cno from course where CName='資料結構')

相關推薦

sql關於T-sql遊標的使用附有例項

select *from Student order by SName for read only open s_sur select @@CURSOR_ROWS fetch next from s_sur update Student set SAge ='50' where current of s_su

SQL SERVER觸發器附有例項

觸發器:即當發生某一事件時,如果滿足給定條件,則執行相應的動作。它的基本架構:  觸發器建立語法:(1)CREATETRIGGER trigger_nameON table|viewFOR|AFTER|

Vue 自定義元件包含例項

Vue 支援自定義元件,方便我們在開發過程中根據自己的專案自定義元件。 定義 主要是通過 Vue.component( ) 來完成。新建一個 alert.js 檔案: // 自定義一個 alert 元件 Vue.component('alert', { template: '&

PL/SQL查詢Oracle大數17位以上時顯示科學計數法的解決方法

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

T-SQL:qualify和window 使用十七

1.qualify 是一個潛在的額外篩選器 主要用於對開窗函式的資料篩選 SELECT orderid, orderdate, val, RANK() OVER(ORDER BY val DESC) AS rnk FROM Sales.OrderValues QUALIFY rnk <=

SQL 函式 REPLACE() 的用法及例項

一、定義:   官方語法: REPLACE ( string_expression , string_pattern , string_replacement )   引數含義: string_expression 要搜尋的字串表示式。string_expression 可以

關於sql語句的一些函式長期更新

前言在最近看別人的sql的時候,看到一些函式,比如left(),right()等等,好奇是什麼意思,查詢之後覺得還是挺有用的,特此記錄下來。部落格會在遇到新的函式的時候定期更新。—————————————————————————————————————————————————

SQL Server 2017 安裝過程的一點說明有點意思

會提到:“安裝程式無法與下載伺服器聯絡。請提供 Microsoft 機器學習伺服器安裝檔案的位置,然後單擊“下一步”。可從以下位置下載安裝檔案” 的解決方案 ed2k://|file|cn_sql_server_2017_developer_x64_dvd_11296175.iso|17697771

動態SQL 和 巢狀遊標的使用例項

mysql動態執行sql,這邊重點程式碼是: set f_sql=CONCAT('rename table cw_computer_resulttest to cw_computer_result',f_last,';'); set @ms=f_sql;  PREPARE

使用 SQL 快取依賴項,資料庫快取依賴 例項

使用 SQL 快取依賴項 最簡單的快取策略就是使快取資料在一個指定的時間週期後過期。但是這個簡單的方法意味著快取資料沒有保持與底層資料來源的聯絡,從而導致過期資料長時儲存或當前資料很快過期。更好的方法是使用 SqlCacheDependency 類,這樣資料一直被快取,直

sqlwhile語句多層迴圈例項

while語句是SQL中最常見的迴圈語句之一,下面就將為您介紹sql中while語句多層迴圈的例項,供您參考,希望對您學習SQL中的迴圈語句能夠有所幫助。 DECLARE @Name nvarchar(20); DECLARE @Type varchar(20); DECL

PL/SQLcursor(游標/遊標)的用法

顯式cursor 顯式是相對與隱式cursor而言的,就是有一個明確的宣告的cursor.顯式遊標的宣告類似如下(詳細的語法參加plsql ref doc ) cursor cursor_name (parameter list) is select ... 遊標從declare、open、fetc

SQL的空值null對算術運算、比較運算、集合運算的影響

算術運算如果算術表示式的任一輸入為空,則該算術表示式(涉及諸如 +、-、* 或 / 的算術運算)結果為空。例:如果查詢中有一個表示式是r.A + 5, 並且對於關係中某個特定的元組, r.A為空,那麼對此元組來說,該表示式的結果也為空。比較運算SQL將涉及空值的任何比較運算的

【菜鳥系列】SQL Server跨伺服器例項訪問資料庫

/*** 竟然又一次來寫部落格了~是經理建議我堅持寫部落格的~看了3個月前我的第一篇部落格,也覺得很有必要 囉嗦幾句~ 一眨眼3個月過去了~本人有沒有變得NB一點了呢? 完全沒有!!!而且還變的更菜了~現在看自己寫的部落格已經有點看不懂了~真是太不幸了~ 最近單位做了一款

SQL各種Join語句left、right、full、inner的區別

iamlaosong文 實際工作中常常需要將多個表的查詢結果合成的一個查詢中,我一般採用join語句進行連線,用的最多的就是left join,這麼多join的差別是什麼呢?簡單的說就是最終結果以誰為

SQLSUBSTRING函式的用法及例項解析

一、定義:SQL 中的 substring 函式是用來擷取字串中的一部分字元。這個函式的名稱在不同的資料庫中不完全一樣。 MySQL: SUBSTR( ), SUBSTRING( ) Oracle: SUBSTR( ) SQL Server: SUB

SQL多表聯合查詢LEFT JOIN條件差異

logs 技術分享 .cn where 聯合查詢 uid exist 包含 into 查詢A: select a.*,b.* into Bus605115_ON_Where_And --(642 行受影響) from PositionN a left join szt

SQL實現小算法輔助決策_ 計算商品評分、及時補貨

mysql分別把 計算各自的 1、點擊量/點擊量均值 2、銷售量/銷售量均值 兩者相加,可以得到一個簡單評分 又有問題了,豬肉的評分不應該比五花肉多。 因此我們要加入簡單的權重,譬如點擊量評分占30%。銷售量評分占70%select p_type,p_name, (p_view/view_avg)

SQL sever T-SQL語句

視圖 屬性 註釋 事務 清空表 一般來說 結構 let ase 一、創建/刪除數據庫、表 create database 數據庫名 --創建數據庫 大小寫不限制 --為註釋符 可以選中該行點執行 只執行該行命令 drop database 數據庫名 -

SQL Server ---T-SQl基本語句

語法 主鍵 結果集 不用 定義 為什麽 blog img 計算 T-SQL 是 SQL-Server 的結構化查詢語言。 基本數據操作語言. 基礎語句 先創建表 我後面的列子都是用的這一個表,列名啥的 就大概看看吧~~ 純粹為了學習語句,語法~~所以先創建個表吧~ 1.