欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SQL?server數據庫declare和set用法技巧小結

 更新時間:2023年08月11日 10:00:58   作者:帝火流冰  
這篇文章主要給大家介紹了關于SQL?server數據庫declare和set用法技巧的相關資料,在SQL Server中,DECLARE用于聲明變量和存儲過程中的參數,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

最近遇到一段不怎么看得懂的SQL語句,經過查閱資料,整理出來的有關數據拼接、數據庫變量的一些內容如下:

如根據下述學生表,若要求得到年齡最大的學生信息:

學號15001150021500316004
姓名張三李四王麗薇姿
性別
年齡20201922

不使用變量的情況下,可用嵌套查詢實現:

Select * from 學生表 where 年齡=(select max(年齡) from 學生表)

運用變量解決上述問題:

????????Declare @bianliang?int;
????????Set @bianliang=(select max(年齡) from 學生表);
????????Select * from 學生表 where 年齡=@bianliang

面對實際工作中海量紛繁復雜的數據,使用嵌套或連接查詢時很容易出現各種語句錯誤,此時可以通過引入變量的方式將數據之間的邏輯關系簡單化、清晰化。

SQL Server中變量的使用主要涉及三方面的內容,即定義變量,為變量賦值以及結果的顯示。

一、定義/聲明變量

變量分為全局變量和局部變量,全局變量一般是系統(tǒng)內置的,用戶使用時一般無法自行定義,實際工作中也只需要使用局部變量。定義變量的語句如下(定義多個變量時需用逗號隔開):

Declare @變量名1  數值類型,@變量名2  數值類型,@變量名3  數值類型,……

如:declare @i1  int,@i2  nvarchar(10),@i3  money,……

二、為變量賦值

可以使用set或select命令為變量賦值,可以直接將某個具體的值賦給變量,也可以將一個需要經過運算產生的查詢結果賦給變量。

1.直接賦值

如聲明變量:declare @bl1 int,@bl2  nvarchar(10),@bl3  money;

分別使用set和select分別為上述3個變量賦值:

set @bl1=100;  set @bl2='hello' ;  set @bl3=3.1415926  ;          

Select @bl1=100, @bl2='hello',@bl3=3.1415926 ;

2.為變量賦一個需要運算產生結果的值

如聲明變量:Declare @bl int;

以前文的學生表為例,分別使用set和select將學生表中學生年齡的最大值賦給變量@bl:

Set @bl=(select max(年齡) from學生表);

Select @bl=max(年齡) from 學生表;

3.set與select為變量賦值時的區(qū)別

直接賦值時set與select并無區(qū)別,只有所賦的值是一個查詢結果時二者才有不同,當查詢結果唯一時(如最大最小值),set和select都可以完成賦值,但是查詢結果不止一個時使用set會提示錯誤。

如查詢前文學生表中學生年齡:

Declare @bl?int;
Set @bl=(select 年齡 from 學生表);

則變量@bl的賦值無法完成,因為學生表中年齡不止一條記錄。而此時select命令仍可以產生結果。

Declare @bl?int;
Select @bl=年齡 from 學生表;

此時變量@i的值為22,即表中最后一行年齡數據。這是因為select對變量的賦值方式是遍歷數據中的全部記錄,然后將最后一條記錄賦給變量。

4.使用select命令為變量賦值的應用

了解了select為變量賦值時遍歷全部數據的特性,用戶可以運用變量將表中的一列記錄變成一行值顯示,仍以前文提到的學生表為例:

Declare @i varchar(100)
Set @i=''
Select @i=@i+姓名 from學生表

此時變量@i的值為“張三李四王麗薇姿”。

這種方法在實際工作中可以結合存儲過程運用,提高SQL語句執(zhí)行效率。需要注意的是,若上例的學生表中“姓名”列有null值,則變量@i的值也是null,這是因為null與任何值進行運算結果都是null,此時需要通過isnull函數對null值進行調整。

三、顯示結果

變量的結果有兩種顯示方式,即文本顯示(print)和表格顯示(select)兩種.

總結

相關文章

  • 解決SqlServer 各版本 sa帳戶不能登錄問題

    解決SqlServer 各版本 sa帳戶不能登錄問題

    我們在使用SqlServer的時候,經常會遇到sa賬號不能登錄的問題,那么我們怎么來處理這個問題呢,分享下個人的思路及方法
    2014-08-08
  • SQL Server作業(yè)報錯特殊案例分析

    SQL Server作業(yè)報錯特殊案例分析

    這篇文章主要給大家介紹了關于SQL Server作業(yè)報錯特殊案例的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者使用SQL Server具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-03-03
  • SQL建立數據庫及刪除數據庫命令

    SQL建立數據庫及刪除數據庫命令

    SQL建立數據庫及刪除數據庫命令,需要使用sqlserver的朋友可以參考下。
    2011-11-11
  • sqlserver數據庫移動數據庫路徑的腳本示例

    sqlserver數據庫移動數據庫路徑的腳本示例

    前段時間做過這么一件事情,把原本放在c盤的所有數據庫(除了sql server系統(tǒng)文件外)文件Move到D盤,主要是為了方便后續(xù)管理以及減少磁盤I/O阻塞(C,D是2個獨立磁盤)。腳本需輸入2個參數:目標數據庫名字和目標目錄
    2013-12-12
  • 刪除sqlserver數據庫日志和沒有日志的數據庫恢復辦法

    刪除sqlserver數據庫日志和沒有日志的數據庫恢復辦法

    這篇文章主要介紹了刪除sqlserver數據庫日志和沒有日志的數據庫恢復辦法,需要的朋友可以參考下
    2014-06-06
  • 數據庫性能優(yōu)化一:數據庫自身優(yōu)化提升性能

    數據庫性能優(yōu)化一:數據庫自身優(yōu)化提升性能

    數據庫自身優(yōu)化包括:增加次數據文件,設置文件自動增長、表分區(qū),索引分區(qū)、分布式數據庫設計、整理數據庫碎片等等.需要了解的朋友可以參考下
    2013-01-01
  • SQL SERVER 9003錯誤解決方法

    SQL SERVER 9003錯誤解決方法

    這篇文章主要介紹了SQL SERVER 9003錯誤解決方法的相關資料,需要的朋友可以參考下
    2016-09-09
  • [圖文]三分鐘學會Sql Server的復制功能

    [圖文]三分鐘學會Sql Server的復制功能

    有兩個服務器,裝了兩個數據庫,一個是主的,一個是備用的,下面的的功能就將主數據庫的數據庫,實時同步到備用數據庫上,使他們的數據內容,基本上保持一致。
    2008-07-07
  • SQL SELECT 語句的表連接

    SQL SELECT 語句的表連接

    為了從兩個或多個表中選出數據,我們一般使用表連接來實現這個功能。
    2010-09-09
  • SQL如何實現橫表與縱表相互轉換

    SQL如何實現橫表與縱表相互轉換

    針對SQL橫向表轉縱向的問題,本文從實際應用出發(fā),詳細講解了語法和操作步驟,并結合實例進行了演示和說明。文章還探討了該方法的優(yōu)缺點,提出了一些值得注意的事項,旨在幫助讀者更深入地理解這一重要的數據處理技巧
    2023-04-04

最新評論