亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

讀《程序員的SQL金典》[2]--函數

2024-07-21 02:50:51
字體:
來源:轉載
供稿:網友
讀《程序員的SQL金典》[2]--函數一、數學函數

1.RAND

SELECT RAND () ---0.302870228294199

取0-1之間的隨機小數。

2.小數取整

  • CEILINT(data)舍掉小數部分并向上取整。
  • FLOOR(data)舍掉小數部分并向下取整。
SELECT TOP 3 FWeight, CEILING(FWeight ),FLOOR( FWeight) FROM T_Person
  • Round(m,d):四舍五入對小數進行取整。

參數說明:m為帶處理的數據,d為四舍五入時保留的小數位數,為負數時表示對整數進行四舍五入。

SELECT TOP 3 FWeight, ROUND(FWeight ,2), ROUND(FWeight ,-1) FROM T_Person

結果:

FWeight (無列名) (無列名)56.67 56.67 60.0036.17 36.17 40.0040.33 40.33 40.00

3.SIGN():求符號

SELECT FWeight ,SIGN( FWeight-50 )as '>50' FROM T_Person

結果:

FWeight >5056.67 1.0036.17 -1.00

4.取余:

在SQL Server中,使用百分號%來實現取余操作。

SELECT FWeight ,FWeight% 10 FROM T_Person

結果:

FWeight (無列名)56.67 6.6736.17 6.1740.33 0.33

二、字符串函數

1.LEN(str):計算字符串長度。

2.去除空格

  • LTRIM(str):去掉字符串左側空格。
  • RTRIM(str):去掉字符串右側空格。
SELECT ' HELLO ' ,LEN( '  HELLO  '),LEN (LTRIM( '  HELLO  ')),LEN (RTRIM( LTRIM('  HELLO  ' )))

結果:

(無列名) (無列名) (無列名) (無列名)HELLO 7 5 5

3.截取子串

  • SUBSTRING(str,start,length):取子字符串。其中start從1開始計算,length為子串長度。
  • LEFT(str,length):從最左側開始截取子串。
  • RIGHT(str,length):從最右側開始截取子串。
SELECT FName ,SUBSTRING( FName,2 ,2),LEFT( FName,2 ) as l,RIGHT( FName,2 ) as r FROM T_Person

結果:

FName (無列名) l rLily il Li lyKelly el Ke lySam am Sa am

4.字符串替換

REPLACE(str,old,new):str為要替換的原字符串,old為要被替換的字符串部分,new是用來替換的新字符串。

SELECT LEN (' HELLO '), LEN(REPLACE (' HELLO ', ' ','' )) --結果6,5

5.ASCII碼

  • ASCII(char)計算字符的ASCII碼,如果參數是一個字符串,則返回第一個字母的ASCII碼。
  • CHAR(num)正好相反,是根據ASCII碼數值計算對應的字符。
SELECT ASCII ('A'), ASCII('ANY' ),CHAR( 90)--65,65,Z

6.發音匹配度 DIFFERENCE

在SQL Server中使用DIFFERENCE方法查詢兩個字符串的發音相似度。該方法計算兩個字符串的發音特征值并進行比較,然后返回一個0-4之間的整數,這個數字越大表示兩個字符串發音越相似。

例如:

SELECT FName FROM T_Person WHERE DIFFERENCE( FName,'Tony' )>2

三、日期時間函數

1.GETDATE()--當前時間

SQL Server中取得當前時間的函數GETDATE(),可以使用CONVERT函數對其格式進行處理。

SELECT GETDATE () --2014-02-17 12:44:39.933 SELECT CONVERT (VARCHAR( 50),GETDATE (),101) AS NOWDATE --02/17/2014 SELECT CONVERT (VARCHAR( 50),GETDATE (),108) AS NOWDATE --12:44:39

2.DATEADD()--日期增減

DATEADD(datepart,number,date):date為要計算的日期,number為加減日期數,datepart可以理解為加減的單位。

Image

例如:

SELECT FBirthDay ,DATEADD( YEAR,1 ,FBirthDay) FROM T_Person SELECT FBirthDay ,DATEADD( QUARTER,2 ,FBirthDay) FROM T_Person SELECT FBirthDay ,DATEADD( WEEK,-2 ,FBirthDay) FROM T_Person

3.DATEDIFF()--日期差額

DATEDIFF(datedepart,startdate,enddate):其中datedepart含義同DATEADD參數,startdate和enddate為相減的兩個日期。

SELECT FBirthDay ,FRegDay, DATEDIFF(YEAR ,FBirthDay, FRegDay) AS UserAge FROM T_Person

結果:

FBirthDay FRegDay UserAge1981-03-22 00:00:00.000 1998-05-01 00:00:00.000 171987-01-18 00:00:00.000 1999-08-21 00:00:00.000 121987-11-08 00:00:00.000 2001-09-18 00:00:00.000 14

4.DATENAME()--計算日期名稱

DATENAME(datedepart,date):datedepart參數同DATEADD,date為要計算的目標日期。

SELECT GETDATE () AS NOW, DATENAME(YEAR ,GETDATE()) AS YEAR,DATENAME (DAY, GETDATE()) AS 日期 ,DATENAME( WEEKDAY,GETDATE ()) AS WEEKDAY,DATENAME (QUARTER, GETDATE()) AS 季度

結果:

NOW YEAR 日期 WEEKDAY 季度2014-02-17 13:57:56.127 2014 17 星期一 1

5.DATEPART()--取得日期指定部分

DATEPART(datedepart,date):datedepart參數同DATEADD,date為要計算的目標日期。該方法和DATENAME類似,不過DATEPART返回值是數字,而DATENAME盡量返回的名稱。

SELECT GETDATE () AS NOW, DATEPART(YEAR ,GETDATE()) AS YEAR,DATEPART (DAY, GETDATE()) AS 日期 ,DATEPART( WEEKDAY,GETDATE ()) AS WEEKDAY, DATEPART(QUARTER ,GETDATE()) AS 季度
四、其他函數

1. 類型轉換

  • CAST(exp AS datetype)
  • CONVERT(datetype,exp)
SELECT FIdNumber ,CAST(RIGHT( FIdNumber,4 ) AS INT), Convert(INT ,RIGHT(FIdNumber, 4))%2 FROM T_Person

結果:

FIdNumber (無列名) (無列名)123456789120 9120 0123456789121 9121 1123456789122 9122 0

2.空值處理

①COALESCE(exp,val1,val2....):參數個數不固定。如果exp為null則返回val1,如果val1為null則返回val2...以此類推。如果所有值都為null,則返回null。

例如:

SELECT FBirthDay ,FRegDay, COALESCE(FBirthDay ,FRegDay, '1900-1-1') FROM T_Person

結果:

FBirthDay FRegDay (無列名)1982-07-12 00:00:00.000 2000-03-01 00:00:00.000 1982-07-12 00:00:00.0001983-02-16 00:00:00.000 1998-05-01 00:00:00.000 1983-02-16 00:00:00.000NULL 1999-03-01 00:00:00.000 1999-03-01 00:00:00.000NULL NULL 1900-01-01 00:00:00.0001972-07-18 00:00:00.000 1995-06-19 00:00:00.000 1972-07-18 00:00:00.000

②ISNULL(exp1,exp2):如果exp1值為NULL,則返回exp2.

例如:

SELECT FBirthDay ,FRegDay, ISNULL(FBirthDay ,FRegDay) FROM T_Person

結果:

FBirthDay FRegDay (無列名)1982-07-12 00:00:00.000 2000-03-01 00:00:00.000 1982-07-12 00:00:00.0001983-02-16 00:00:00.000 1998-05-01 00:00:00.000 1983-02-16 00:00:00.000NULL 1999-03-01 00:00:00.000 1999-03-01 00:00:00.000NULL NULL NULL1972-07-18 00:00:00.000 1995-06-19 00:00:00.000 1972-07-18 00:00:00.000

③NULLIF(exp1,exp2):

如果exp1等于exp2,則返回NULL;否則返回exp1.

實例:

SELECT NULLIF (1, 1),NULLIF (1, 2),NULLIF (1,NULL)  --返回NULL,1,1

3.SQL Server獨有函數

①PATINDEX()--可以使用通配符模糊查詢某字符串出現的位置,功能比CHARINDEX強大。

例如:

SELECT FName ,PATINDEX( '%_i%',FName ) FROM T_Person

結果:

Image(1)

②REPLICATE(str,count):將一個字符串str重復count次。

SPACE(N):將空格重復N次。

例如:

SELECT FName ,REPLICATE( FName,3 ),FNAME+ SPACE(5 )+FNAME FROM T_Person

Image(2)

③REVERSE(str):返回字符串的倒序。

④APP_NAME():當前應用程序名稱;HOST_NAME():返回工作站名;CURRENT_USER:返回當前登錄用戶名。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美视频二区36p| 日韩在线观看视频免费| 欧美激情亚洲精品| 国产亚洲人成网站在线观看| 亚洲丝袜av一区| 精品二区三区线观看| 国产精品久久久久7777婷婷| 日韩av电影手机在线| 羞羞色国产精品| 4388成人网| 国产欧美va欧美va香蕉在线| 亚洲男女自偷自拍图片另类| 国产91在线播放九色快色| 日韩精品在线免费观看| 亚洲免费精彩视频| 国产欧美一区二区三区在线看| 欧洲成人性视频| www.欧美精品| 国产一区二区三区视频在线观看| 欧美最顶级丰满的aⅴ艳星| 久久久久久国产精品久久| 久久久久久成人精品| 日韩免费在线免费观看| 久久综合伊人77777尤物| 国产精品999| 欧美精品18videosex性欧美| 欧美黄色三级网站| 国产精品稀缺呦系列在线| 久久影视电视剧免费网站清宫辞电视| 日韩有码在线电影| 久久久99久久精品女同性| 国产精品美乳在线观看| 亚洲 日韩 国产第一| 欧美激情二区三区| 日韩电视剧在线观看免费网站| 亚洲精品福利在线| 亚洲午夜未删减在线观看| 日韩成人激情在线| 91亚洲精品在线观看| 日韩美女在线观看一区| 欧美国产视频一区二区| 日本精品视频在线播放| 成人黄色大片在线免费观看| 狠狠躁天天躁日日躁欧美| 欧美性生交xxxxxdddd| 国产精品18久久久久久麻辣| 久久全球大尺度高清视频| 国产又爽又黄的激情精品视频| 91精品久久久久久久久久久久久久| 美女撒尿一区二区三区| 国产婷婷成人久久av免费高清| 日韩av第一页| 黑人巨大精品欧美一区免费视频| 久久国产色av| 久久精品国产精品亚洲| 在线精品国产欧美| 亚洲视频欧洲视频| 久久91亚洲人成电影网站| 亚洲在线第一页| 欧美疯狂性受xxxxx另类| 亚洲人免费视频| 国产精品视频久久| 久久精品视频在线观看| 91久久精品一区| 日韩久久精品电影| 91久久精品在线| 成人免费淫片视频软件| 亚洲最大av网站| 欧美精品久久一区二区| 亚洲欧美日韩国产精品| 黑人与娇小精品av专区| 91成人福利在线| 国产亚洲欧洲在线| 久久天天躁狠狠躁老女人| 色综合久久中文字幕综合网小说| 亚洲人成电影网| 日韩精品免费在线视频| 激情av一区二区| 成人xvideos免费视频| 色噜噜狠狠色综合网图区| 日韩一区二区三区xxxx| 91久久国产精品91久久性色| 欧美日韩亚洲精品一区二区三区| xxxx欧美18另类的高清| 高清一区二区三区四区五区| 欧美激情极品视频| 亚洲aaa激情| 久久久久免费精品国产| 91高清视频在线免费观看| 亚洲精品98久久久久久中文字幕| 性金发美女69hd大尺寸| 亚洲美女在线观看| 欧美激情日韩图片| 久久久久久久久久久网站| 欧美亚洲另类激情另类| 日韩在线观看免费全集电视剧网站| 亚洲精品美女久久久| 亚洲精品国产精品乱码不99按摩| 777午夜精品福利在线观看| 亚洲国产成人精品电影| 国产成人精品久久久| 欧美电影免费观看高清完整| 色午夜这里只有精品| 欧美久久精品一级黑人c片| 国产精品成人va在线观看| 一区二区三区高清国产| 97视频在线观看成人| 久久精品国产欧美激情| 亚洲午夜女主播在线直播| 久久精品视频亚洲| 亚洲男人天堂九九视频| 久久国产精品影视| 欧美大片在线看免费观看| 亚洲专区在线视频| 亚洲欧洲第一视频| 国产欧美亚洲视频| 国产精品久久电影观看| 中文字幕少妇一区二区三区| 日韩在线观看免费高清| 久久精品国产久精国产思思| 欧美性在线观看| 欧美亚洲伦理www| 亚洲天堂网在线观看| 亚洲国产精品嫩草影院久久| 91精品国产777在线观看| 国产欧美 在线欧美| 国产综合在线观看视频| 亚洲天堂男人天堂女人天堂| 国产亚洲精品久久久久动| 亚洲欧美中文在线视频| 国产精品视频公开费视频| 亚洲人成网站在线播| 亚洲成人激情图| 高清日韩电视剧大全免费播放在线观看| 国产一区香蕉久久| 国内精久久久久久久久久人| 亚洲国产精品视频在线观看| 最近2019年中文视频免费在线观看| 亚洲欧美日韩精品久久| 精品欧美一区二区三区| 亚洲自拍中文字幕| 九九久久久久99精品| 性欧美亚洲xxxx乳在线观看| www.国产精品一二区| 日韩av中文字幕在线免费观看| 久久精品久久久久电影| 亚洲色图美腿丝袜| 精品久久久一区二区| 亚洲精品国产品国语在线| 欧美国产日本高清在线| www.久久久久| 国产欧美亚洲精品| 国产欧美中文字幕| 亚洲成人网在线| 国模极品一区二区三区| 亚洲二区中文字幕| 午夜精品一区二区三区视频免费看| 91沈先生作品| 欧美国产视频日韩| 狠狠躁天天躁日日躁欧美| 中文字幕亚洲欧美日韩高清| 91天堂在线观看| 亚洲成人国产精品| 欧美高跟鞋交xxxxxhd|