當前位置:首頁 » 編程語言 » sqlserver函數
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sqlserver函數

發布時間: 2022-01-12 07:25:36

A. sqlServer常用函數

1、CONVERT()
函數
?
1
CONVERT(data_type(length),data_to_be_converted,style)
data_type(length)
規定目標數據類型(帶有可選的長度)。data_to_be_converted
含有需要轉換的值。style
規定日期/時間的輸出格式。
可以使用的
style
值:點擊打開鏈接
2、DATEADD()
函數
點擊打開鏈接
3、CAST()
函數
?
1
2
Syntax
for
CAST:
CAST
(
expression
AS
data_type
[
(
length
)
]
)
expression
任何有效的表達式。
data_type
目標數據類型。
這包括
xml、bigint

sql_variant。
不能使用別名數據類型。
length
指定目標數據類型長度的可選整數。
默認值為
30。
CONVERT()
函數與CAST()
函數詳細信息:點擊打開鏈接

B. SqlServer函數的系統函數

newid 無參數
返回一個GUID(全局唯一表示符)值
例如:select newid()
返回:2E6861EF-F4DB-4FFE-86EB-637482FE982J2
isnumeric (任意表達式)
判斷表達式是否為數值類型或者是否可以轉換成數值。
是:返回1,不是:返回0
例如:select isnumeric(1111) 返回 1
select isnumeric('123rr') 返回 0
select isnumeric('123') 返回 1
isnull (任意表達式1,任意表達式2)
如果任意表達式1不為NULL,則返回它的值;否則,在將任意表達式2的類型轉換為任意表達式1的類型(如果這兩個類型不同)後,返回任意表達式2的值。
例如:select isnull(null,N'沒有值') 返回 沒有值
select isnull(N'具體的值',N'沒有值') 返回 具體的值
isdate (任意表達式)
確定輸入表達式是否為有效日期或可轉成有效的日期;
是:返回1,不是:返回0
例如:select isdate(getdate()) 返回1
select isdate('2013-01-02') 返回1
select isdate('198') 返回0

C. sqlserver 按范圍取值的函數

你可以試試CASE WHEN,具體(case when sum(A)<=200 then 200 when sum(A)>=300 then 300 else B end) as B

D. SqlServer函數的字元串函數

1 字元串函數
1.1 長度與分析用
datalength(Char_expr) 返回字元串包含字元數,但不包含後面的空格
substring(expression,start,length) 不多說了,取子串
right(char_expr,int_expr) 返回字元串右邊int_expr個字元
1.2 字元操作類
upper(char_expr) 轉為大寫
lower(char_expr) 轉為小寫
space(int_expr) 生成int_expr個空格
replicate(char_expr,int_expr)復制字元串int_expr次
reverse(char_expr) 反轉字元串
stuff(char_expr1,start,length,char_expr2) 將字元串char_expr1中的從
start開始的length個字元用char_expr2代替
ltrim(char_expr) rtrim(char_expr) 取掉空格
ascii(char) char(ascii) 兩函數對應,取ascii碼,根據ascii碼取字元
1.3 字元串查找
charindex(char_expr,expression) 返回char_expr的起始位置
patindex(%pattern%,expression) 返回指定模式的起始位置,否則為0

E. SQLServer里用戶自定義函數寫在哪

drop FUNCTION [dbo].[jzf_Get_IDNO]

go

-- =============================================

-- Author: <Author,,Name>

-- Create date: <Create Date, ,>

-- Description: <Description, ,>

-- =============================================

create FUNCTION [dbo].[jzf_Get_IDNO]

(

-- Add the parameters for the function here

@ApartID nvarchar(40)

)

RETURNS nvarchar(40)

AS

BEGIN

-- Declare the return variable here

DECLARE @str nvarchar(40)

set @str=N'未查到'

-- Add the T-SQL statements to compute the return value here

SELECT @str=Isnull(IDNO,N'未定義') from mytable where objectid=@ApartID


-- Return the result of the function

RETURN @str


---------------------結果顯示在,上述函數是標量值函數:

F. SqlServer函數的聚合函數

count()
返回組中的總條數,count(*)返回組中所有條數,包括NULL值和重復值項,如果抒寫表達式,則忽略空值,表達式為任意表達式。
max()
返回組中的最大值,空值將被忽略,表達式為數值表達式,字元串表達式,日期。
min()
返回組中的最小值,空值將被忽略,表達式為數值表達式,字元串表達式,日期。
sum()
返回組中所有值的和,空值將被忽略,表達式為數據表達式。
avg()
返回組中所有值的平均值,空值將被忽略,表達式為數據表達式。

G. sqlserver 查看自定義函數


慘了,好像答非所問了。

H. SqlServer函數的數學函數

trunc(45.923,1) 按指定精度截斷十進制數 結果:45.9 此為oracle函數
mod(1600,300) 求除法余數 結果:100
abs(numeric_expr) 求絕對值
ceiling(numeric_expr) 取大於等於指定值的最小整數
avg(numeric_expr)取平均數
exp(float_expr) 取指數
floor(numeric_expr) 小於等於指定值得最大整數
pi() 3.1415926.........
power(numeric_expr,power) 返回power次方
rand([int_expr]) 隨機數產生器
round(numeric_expr,int_expr) 安int_expr規定的精度四捨五入
sign(int_expr) 根據正數,0,負數,,返回+1,0,-1
sqrt(float_expr) 平方根

I. sqlserver 函數的寫法

returns @RowSet table(
ID int identity(1,1) ,
score float,
lastScore float
)
你這里已經聲明了一個表格類型變數作為函數的返回值.
那麼只要在函數里對這個表進行賦值,就可以直接return

insert into @RowSet values(...)
return
--------
declare @ScoreList table (YScore float)
declare @ScoreList1 table (lastScore float)
-------------------------------------------

怎麼我看你又聲明了兩個表格類型的變數?你函數聲明裡的返回類型是表,那麼單行返回的話就只能往裡裝簡單類型的值.
如果你要union拼接兩個table一起返回的話,兩個內部table和聲明的返回table定義又不一致.
很奇怪的寫法...能看出來你想干什麼...但這種寫法很怪異.
========================================補充
insert into @ScoreList SELECT...
insert into @ScoreList1 SELECT ...
你這不是把兩個查詢的結果賦給兩個內部變數了么,且這個表與你聲明的返回表都是一個float列.
你完全可以再把這兩個變數表insert 到@RowSet啊,或者不用這倆變數表,直接在兩個查詢里向@RowSet寫入值.
最後直接
return
end
不就行了?
======
http://hi..com/kas68310/blog/item/af4e05f0d5ee18c50a46e012.html
這有個返回值為talble的函數,你參看一下吧.你這個函數的完成度已經相當高了.

J. SqlServer如何用Sql語句自定義聚合函數

有兩個寫法:

select*fromtblDept
whereidin(
count(casewhenSalary>3000then1elsenullend)*1.0/count(*)>0.5)

select*fromtblDept
whereidin(
sum(casewhenSalary>3000then1else0end)*1.0/count(*)>0.5)