1. 程式人生 > >SQL Server 高級編程之T-SQL 編程函數

SQL Server 高級編程之T-SQL 編程函數

比較 字符串 自定義 har post add server function log

--字符串函數
--1、LEN:返回一個字符串的字符數
select LEN(‘中國‘),LEN(‘abc123!‘)
select LEN(‘abc ‘+‘1‘),LEN(‘ abc‘)
--2、DataLength:返回一個字符串的字節數
select DATALENGTH(‘中國‘),DATALENGTH(‘abc123!‘)
--3、Right、left :返回一個字符串的右邊或左邊的一部分字符
select RIGHT(‘abcdef‘,3),LEFT(‘abcdef‘,3)
--4、Substring:字符串截取函數 SQL的下標從1開始
select SUBSTRING(‘abcdef‘,2,3)
--5、charIndex:字符串查找函數
select CHARINDEX(‘a‘,‘bcadadfd‘,1)--’查找什麽‘,‘具體’,查找第幾個
--6、UPPER:字母大寫轉換函數
--7、LoWER:字母小寫轉換函數
select UPPER(‘abc123‘),LOWER(‘ABc123中!‘)
--8、SPACE:產生空格函數
select len(‘abc‘ +SPACE(10)+‘123‘)
--9、replicate:字符串重復函數
select REPLICATE(‘abc ‘,3)
--10、replace:字符替換函數
select REPLACE(‘oIoo000oooo‘,‘o‘,‘0‘)--後兩個雙引號表示:把什麽替換成什麽
--11、Stuff:字符替換函數
select STUFF(‘湖南武漢‘,2,1,‘北‘)
select STUFF(‘中國長沙‘,3,0,‘武漢‘)
--12、Ltrim和Rtrim:去掉字符串左邊或右邊全部空格
select LEN(LTRIM(‘ abc d ‘)),Len(RTRIM(‘ abc d ‘))
--13、Str:將數值轉換為字符串函數
select STR(12345.7654,5,2) --8位2位小數位
--14、char:將一個ASCII值轉換為一個字符
select CHAR(69),ASCII(‘*‘)

--日期函數
--1、getdate():返回服務器上當前時間
select GETDATE()
--2、datepart:返回一個日期的一部分值(整型)
--3、datename:返回一個日期的一部分值(字符串)
--返回一周的第幾天
select DATEPART(DW,GETDATE()),DATENAME(DW,GETDATE())
--返回一年的第幾周
select DATEPART(WEEK,GETDATE()),DATENAME(WEEK,GETDATE())
--4、datediff:日期比較函數
--返回每筆交易已經發生了多少天
use BankDB
select DAtediff(dd,TransDate,GETDATE()) from TransInfo
--5、dateADD:日期改變函數
select DATEADD(DAY,2,GETDATE())

--自定義一個函數,根據學員的姓名來獲取學員的兩科平均成績
if OBJECT_ID(‘AvgScore‘) is not null
drop function AvgScore
go
create function AvgScore(@name varchar(50))
returns decimal as
begin
declare @stuId decimal=0
select @stuId=StuId from StuInfo where StuName =@name
declare @m decimal=0
select @m=AVG(WriteExam+LabExam)/2 from Exam where @stuId=StuId
return @m
end
go

select dbo.AvgScore(‘張三豐‘)

SQL Server 高級編程之T-SQL 編程函數