人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動態(tài)

SQL語句(T-SQL匯總) 用T-SQL畫出這些圖形

發(fā)布日期:2022-01-15 11:16 | 文章來源:腳本之家

好的!我們先來看幾個圖像:

棱形三角形正方形圓形梯形

上面這些圖形都是用T-SQL實(shí)現(xiàn)的,文章的最后我們一起來用T-SQL畫出這些圖形。

首先,我們開始回顧一下T-SQL的基本語法:

函數(shù)

abs(x):求絕對值

例:    select abs(-3)   值為:3

sqrt(x)求平方根;

例:    select sqrt(4)    值為:2.0

rand([0])返回0~1之間的隨機(jī)float

floor(X):返回小于或等于X值的最大整數(shù);

例:    select floor(34.5)   值為:34

ceiling(X):返回大于或等于X值的最小整數(shù);

例:    select ceiling(34.5)  值為:35

round(x,length):四舍五入函數(shù),length為正,則對X小數(shù)位數(shù)四舍五入,length為負(fù),則對X從小數(shù)點(diǎn)左邊length位起四舍五入,若length既為負(fù)數(shù)且其絕對值大于X整數(shù)部分 數(shù)字個數(shù),則函數(shù)值為0;

例:    select ROUND(63.567, 1)     值為:63.600      select ROUND(63.567, -1)    值為:60.000      select ROUND(63.567, 0)     值為:64.000      select ROUND(63.567, -3)    值為:0.000

Sign(X):求符號函數(shù),X>0則sign(x)=1; X=0 則sign(X)=0;X<0 則sign(X)=-1

例:     select sign(-3)     值為:-1       select sign(3)       值為:1       select sign(0)      值為:0

Power(X,y):求X的y次方;

例:    select power(4,2)   值為 :16

字符串函數(shù)

ASCII(串):返回字符表達(dá)式最左端字符的ASCII 碼值;

例:    select ASCII('bc')   值為:98

CHAR(ASCII碼):用于將ASCII 碼轉(zhuǎn)換為字符,如果沒有輸入0 ~ 255 之間的ASCII 碼值,返回值為NULL ;

例:    select char(97)   值為:a

Lower(串):把字符串全部轉(zhuǎn)換為小寫;    

例:    select lower('QingPingGuo')   值為: qingpingguo

Upper(串) :把字符串全部轉(zhuǎn)換為大寫;

例:    select upper('QingPingGuo')   值為: QINGPINGGUO

LTrim(串), RTrim(串):去掉左右空格;

 例(去左空格):  select '博客園'+LTrim(' 青蘋果 ')+'博客園'   值為:博客園青蘋果 博客園

space(個數(shù)):返回指定個數(shù)的空格;

replicate(,次數(shù)):將串重復(fù)指定次數(shù);

例:    select replicate('青蘋果',2)    值為:青蘋果青蘋果

Left(, 個數(shù)):返回已知串從左邊開始指定個數(shù)的字符;

例:    select left('青蘋果在博客園', 4)    值為:青蘋果在

Right(, 個數(shù)):返回已知串從右邊開始指定個數(shù)的字符;

例:    select right('青蘋果在博客園', 4)    值為:在博客園

DataLength(串):返回串的字節(jié)數(shù)長度,計算串尾空格。可以用它檢查varchar,text等的動態(tài)長度;

例:    select datalength('青蘋果在博客園')    值為:14

SubString(串, 開始位置, 長度):返回從字符串左邊'開始位置'起數(shù)量為'長度'的字符串。其中表達(dá)式可以是字符串或二進(jìn)制串或含字段名或字符型變量的表達(dá)式。在這里要注意一下SUBSTRING()函數(shù)不能用于TEXT 和IMAGE 數(shù)據(jù)類型;

例:    select substring('青蘋果在博客園',5,2)     值為:博客

Len(串) :返回表達(dá)式的長度。注意它返回的是字符數(shù),而不是字節(jié)數(shù)。不計算串尾空格;

例:    select len('青蘋果cnblogs ')      值為:10

Replace('1','2','3'):用串3替換串1中出現(xiàn)的所有串2字符;

例:    select replace('青蘋果在北京','北京','博客園')    值為:青蘋果在博客園

Stuff(串1, 開始位置, 長度, 串2):刪除串1指定位置開始指定長度的字符串,并在指定位置插入串2;

例:    select stuff('青蘋果是程序猿嗎?',5,3,'攻城獅')    值為:青蘋果是攻城獅嗎?

reverse(串) :將指定的字符串的字符排列順序顛倒;

例:    select reverse('12345')    值為:54321

charindex(串1,串2):返回串1在串2的開始位置,可從所給出的‘開始位置'進(jìn)行查找;

例:    select charindex('guo','qingpingguo')    值為:9

轉(zhuǎn)換函數(shù)

所謂轉(zhuǎn)換函數(shù)就是把某種數(shù)據(jù)類型轉(zhuǎn)換的表達(dá)式顯示轉(zhuǎn)換成另一種數(shù)據(jù)類型的函數(shù)。
CAST(表達(dá)式 AS 數(shù)據(jù)類型[(長度)])

例:  select '今天是:' + Cast(GetDate() as char(10))  值為:今天是:07 23 2012

CONVERT(轉(zhuǎn)換后的目標(biāo)數(shù)據(jù)類型[(length)],表達(dá)式[style])

例:  select '今天是:' +convert(char(10),getdate()) 值為:今天是:07 23 2012

下面來看一個求差值的函數(shù)datediff函數(shù);

DATEDIFF(datepart,date1,date2)

例:  select datediff(yy,'1988.09.14','2012.12.21')  值為:24    select datediff(mm,'1988.09.14','2012.12.21')  值為:291
聚合函數(shù)

聚合函數(shù)也就是統(tǒng)計函數(shù),它主要是對一組值進(jìn)行計算,它的功能分別是:求和(sum)、求最小(min)、求最大(max)、求總行數(shù)(count)、求平均值(avg)

例:   求和:select sum(Name) from TableName   求最?。?/SPAN>select min(Name) from TableName   求最大:select max(Name) from TableName   求總數(shù):select count(Name) from TableName   求平均:select avg(Name) from TableName
T-SQL的一些關(guān)鍵字

Print 向客戶端返回用戶信息

例:  print '青蘋果' 屏幕上就會顯示“青蘋果三個字“

Go 用來通知SQL一批語句的結(jié)束

Distinct 掉重復(fù)值

Declare 用來聲明變量

例:  declare @a int

Set 為變量賦值

例:  set @a='青蘋果'

While 在SQL中用來循環(huán)(好像在SQL中用來做循環(huán)的關(guān)鍵字不多)

語法:    WHILE <條件表達(dá)式> BEGIN <命令行或程序塊> [BREAK] [CONTINUE] [命令行或程序塊] END

While比較重要,我們來做個例子加深一下對While循環(huán)的理解:

declare @a intset @a=1while @a<5begin print '青蘋果'set @a=@a+1end
輸出結(jié)果:青蘋果

     青蘋果
     青蘋果
     青蘋果

if else 判斷語句

判斷語句用的還是比較多的我們還是來做個例子說明一下;

求:a、b、c三個數(shù)的最大值?

declare @a int,@b int,@c int,@max intset @a=1 set @b=2 set @c=3 if @a>@b set @max=@aelse set @max=@bif @max<@c set @max=@c print @max
輸出結(jié)果:3

begin end 用來設(shè)定一個程序塊,將在BEGIN…END內(nèi)的所有程序視為一個單元執(zhí)行。

Exists 判斷是否存在

Case 也是用來判斷的,和IF語句差不多,它的格式為:

 CASE <運(yùn)算式>    WHEN <運(yùn)算式1> THEN <結(jié)果1>WHEN<運(yùn)算式n> THEN <結(jié)果n> [ELSE <結(jié)果n+1>] END

Return   用于結(jié)束當(dāng)前程序的執(zhí)行,返回到上一個調(diào)用它的程序或其它程序。在括號內(nèi)可指定一個返回值。

Goto標(biāo)示符 用來改變程序執(zhí)行的流程,使程序跳到標(biāo)有標(biāo)識符的指定的程序行再繼續(xù)往下執(zhí)行。要注意的是作為跳轉(zhuǎn)目標(biāo)的標(biāo)識符可為數(shù)字與字符的組合,但必須以“:”結(jié)尾,如:“1023:” “qingpingguo:”

例子: declare @a int   set @a = 1      qingpignguo:      print @a   set @a = @a + 1   while @a < 6     goto qingpignguo
輸出結(jié)果:12345

最后一個給大家看個好玩的:

Waitfor 用來暫停程序執(zhí)行,直到等待指定時間之后,或所設(shè)定的時間已到才繼續(xù)往下運(yùn)行程序。

語法:  waitfor {delay '時間'|time '時間'}

解釋:

(1)‘時間'必須為DATETIME類型數(shù)據(jù),且不能包括日期,如‘10:12:05'

(2)DELAY:用來設(shè)定等待的時間長短,最多為24小時。(是一個時間間隔)

3)TIME:用來設(shè)定等待結(jié)束的時間點(diǎn)(是一個具體的時間)

例子: waitfor delay '00:00:03'   print '你好,我是青蘋果'   go

以上就是T-SQL的所有內(nèi)容了,接下來我們來利用最后的時間畫幾個圖形:

直角三角形:

declare @a int set @a=1while(@a<11)beginprint replace(space(@a),' ','*')set @a=@a+1end

直角三角形輸出結(jié)果:

正方形:

declare @a intdeclare @b intdeclare @c nvarchar(100)set @a=1set @b=1set @c=''while (@a<9)begin while (@b<15) begin set @c=@c+'*' set @b=@b+1 end print @c set @a=@a+1end

正方形 輸出結(jié)果:

菱形:

declare @a int,@b intset @a=1 set @b=15if(@b%2!=1)print '數(shù)字必須都是奇數(shù)'elsewhile(@a<=@b)beginif(@a%2=1)print space((@b-@a)/2)+replace(space(@a),' ','*')+space((@b-@a)/2)set @a=@a+1endset @a=@a-2while (@a<=@b)beginif(@a%2=1)print space((@b-@a)/2)+replace(space(@a),' ','*')+space((@b-@a)/2)set @a=@a-1 if (@a<0)breakend

菱形 輸出結(jié)果:

梯形:

declare @a int,@b intset @a=7 set @b=21if(@a%2=1)while(@a<@b)beginprint space((@b-@a)/2)+replace(space(@a),' ','*')+space((@b-@a)/2)set @a=@a+2end

梯形 輸出結(jié)果:

矩形:

declare @a intdeclare @b intdeclare @c nvarchar(100)set @a=1set @b=1set @c=''while (@a<9)begin while (@b<23) begin set @c=@c+'*' set @b=@b+1 end print @c set @a=@a+1end

矩形 輸出結(jié)果:

圓形:

declare @a int,@b intset @a=9 set @b=13while (@a<=@b)beginif(@a%2=1)print space((@b-@a)/2)+replace(space(@a),' ','*')+space((@b-@a)/2)set @a=@a+1endset @a=@a-1beginprint space((@b-@a)/2)+replace(space(@a),' ','*')+space((@b-@a)/2)endwhile (@a<=@b)beginif(@a%2=1)print space((@b-@a)/2)+replace(space(@a),' ','*')+space((@b-@a)/2)set @a=@a-1if(@a<10)breakendset @a=@a-2beginprint space((@b-@a)/2)+replace(space(@a),' ','*')+space((@b-@a)/2)end

圓形輸出結(jié)果:

The End! 以上就是本文的所有內(nèi)容,可能寫的不夠全面,有不足的地方希望大家多多補(bǔ)充,多多發(fā)表意見!謝謝!
作者:青蘋果

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

實(shí)時開通

自選配置、實(shí)時開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部