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

sql屬於函數

發布時間: 2022-09-08 09:21:33

① 什麼是sql自定義函數

Create
Function
myFunc(@param1
int,@param2
varchar(50))
returns
int
as
begin
......
RETURN
0
end
類似這樣自己建的函數,就是SQL自定義函數,可以自定義參數和返回值的,能夠在查詢語句中使用的。
像max(),min(),getdate(),newid()這些就是系統函數了。

② SQL中什麼叫函數 什麼叫參數它們的概念!

函數,就是編程中的方法。就比如現實中要把生菜做成美味可口的佳餚的時候,必須經過烹飪,而烹飪的方法都不一樣。函數就如這烹飪方法一樣。而參數就如這烹飪的食材一樣。

③ 求教sql函數的正確用法

distinct 省略選擇欄位中包含重復數據的記錄,就是出來的結果無重復數據
RTRIM 去掉字元串右邊的空白字元

CAST 和 CONVERT
將某種數據類型的表達式顯式轉換為另一種數據類型。CAST 和 CONVERT 提供相似的功能。
CAST ( expression AS data_type )
CONVERT (data_type[(length)], expression [, style])
參數
expression
是任何有效的 Microsoft® SQL Server™ 表達式。有關更多信息,請參見表達式。
data_type
目標系統所提供的數據類型,包括 bigint 和 sql_variant。不能使用用戶定義的數據類型。有關可用的數據類型的更多信息,請參見數據類型。
length
nchar、nvarchar、char、varchar、binary 或 varbinary 數據類型的可選參數。
style
日期格式樣式,藉以將 datetime 或 smalldatetime 數據轉換為字元數據(nchar、nvarchar、char、varchar、nchar 或 nvarchar 數據類型);或者字元串格式樣式,藉以將 float、real、money 或 smallmoney 數據轉換為字元數據(nchar、nvarchar、char、varchar、nchar 或 nvarchar 數據類型)。
SQL Server 支持使用科威特演算法的阿拉伯樣式中的數據格式。
在表中,左側的兩列表示將 datetime 或 smalldatetime 轉換為字元數據的 style 值。給 style 值加 100,可獲得包括世紀數位的四位年份 (yyyy)。

REPLICATE
以指定的次數重復字元表達式。
REPLICATE ( character_expression , integer_expression )
參數
character_expression
由字元數據組成的字母數字表達式。character_expression 可以是常量或變數,也可以是字元列或二進制數據列。
integer_expression
是正整數。如果 integer_expression 為負,則返回空字元串。

SUBSTRING
返回字元、binary、text 或 image 表達式的一部分。
SUBSTRING ( expression , start , length )

參數
expression
是字元串、二進制字元串、text、image、列或包含列的表達式。不要使用包含聚合函數的表達式。
start
是一個整數,指定子串的開始位置。
length
是一個整數,指定子串的長度(要返回的字元數或位元組數)。

MAX
返回表達式的最大值。

RIGHT
返回字元串中從右邊開始指定個數的 字元

LEN
返回給定字元串表達式的字元(而不是位元組)個數,其中不包含尾隨空格。

④ 什麼SQL函數,作用有哪些

SQL 擁有很多可用於計數和計算的內建函數。
[編輯本段]函數的語法
內建 SQL 函數的語法是: SELECT function(列) FROM 表
[編輯本段]函數的類型
在 SQL 中,基本的函數類型和種類有若干種。函數的基本類型是: Aggregate 函數 Scalar 函數
[編輯本段]合計函數(Aggregate functions)
Aggregate 函數的操作面向一系列的值,並返回一個單一的值。 注釋:如果在 SELECT 語句的項目列表中的眾多其它表達式中使用 SELECT 語句,則這個 SELECT 必須使用 GROUP BY 語句!"Persons" table (在大部分的例子中使用過) Name Age
Adams, John 38
Bush, George 33
Carter, Thomas 28

MS Access 中的合計函數
函數 描述
AVG(column) 返回某列的平均值
COUNT(column) 返回某列的行數(不包括 NULL 值)
COUNT(*) 返回被選行數
FIRST(column) 返回在指定的域中第一個記錄的值
LAST(column) 返回在指定的域中最後一個記錄的值
MAX(column) 返回某列的最高值
MIN(column) 返回某列的最低值
STDEV(column)
STDEVP(column)
SUM(column) 返回某列的總和
VAR(column)
VARP(column)

在 SQL Server 中的合計函數
函數 描述
AVG(column) 返回某列的平均值
BINARY_CHECKSUM
CHECKSUM
CHECKSUM_AGG
COUNT(column) 返回某列的行數(不包括NULL值)
COUNT(*) 返回被選行數
COUNT(DISTINCT column) 返回相異結果的數目
FIRST(column) 返回在指定的域中第一個記錄的值(SQLServer2000 不支持)
LAST(column) 返回在指定的域中最後一個記錄的值(SQLServer2000 不支持)
MAX(column) 返回某列的最高值
MIN(column) 返回某列的最低值
STDEV(column)
STDEVP(column)
SUM(column) 返回某列的總和
VAR(column)
VARP(column)

[編輯本段]Scalar 函數
Scalar 函數的操作面向某個單一的值,並返回基於輸入值的一個單一的值。
MS Access 中的 Scalar 函數
函數 描述
UCASE(c) 將某個域轉換為大寫
LCASE(c) 將某個域轉換為小寫
MID(c,start[,end]) 從某個文本域提取字元
LEN(c) 返回某個文本域的長度
INSTR(c,char) 返回在某個文本域中指定字元的數值位置
LEFT(c,number_of_char) 返回某個被請求的文本域的左側部分
RIGHT(c,number_of_char) 返回某個被請求的文本域的右側部分
ROUND(c,decimals) 對某個數值域進行指定小數位數的四捨五入
MOD(x,y) 返回除法操作的余數
NOW() 返回當前的系統日期
FORMAT(c,format) 改變某個域的顯示方式
DATEDIFF(d,date1,date2) 用於執行日期計算

[編輯本段]AVG 函數

[編輯本段]定義和用法
AVG 函數返回數值列的平均值。NULL 值不包括在計算中。
SQL AVG() 語法
SELECT AVG(column_name) FROM table_name
[編輯本段]SQL AVG() 實例
我們擁有下面這個 "Orders" 表: O_Id OrderDate OrderPrice Customer
1 2008/12/29 1000 Bush
2 2008/11/23 1600 Carter
3 2008/10/05 700 Bush
4 2008/09/28 300 Bush
5 2008/08/06 2000 Adams
6 2008/07/21 100 Carter

例子 1
現在,我們希望計算 "OrderPrice" 欄位的平均值。 我們使用如下 SQL 語句: SELECT AVG(OrderPrice) AS OrderAverage FROM Orders結果集類似這樣: OrderAverage
950

例子 2
現在,我們希望找到 OrderPrice 值高於 OrderPrice 平均值的客戶。 我們使用如下 SQL 語句: SELECT Customer FROM OrdersWHERE OrderPrice>(SELECT AVG(OrderPrice) FROM Orders)結果集類似這樣: Customer
Bush
Carter
Adams
COUNT() 函數COUNT() 函數返回匹配指定條件的行數。
[編輯本段]SQL COUNT() 語法
SQL COUNT(column_name) 語法
COUNT(column_name) 函數返回指定列的值的數目(NULL 不計入): SELECT COUNT(column_name) FROM table_name
SQL COUNT(*) 語法
COUNT(*) 函數返回表中的記錄數: SELECT COUNT(*) FROM table_name
SQL COUNT(DISTINCT column_name) 語法
COUNT(DISTINCT column_name) 函數返回指定列的不同值的數目: SELECT COUNT(DISTINCT column_name) FROM table_name注釋:COUNT(DISTINCT) 適用於 ORACLE 和 Microsoft SQL Server,但是無法用於 Microsoft Access。
[編輯本段]SQL COUNT(column_name) 實例
我們擁有下列 "Orders" 表: O_Id OrderDate OrderPrice Customer
1 2008/12/29 1000 Bush
2 2008/11/23 1600 Carter
3 2008/10/05 700 Bush
4 2008/09/28 300 Bush
5 2008/08/06 2000 Adams
6 2008/07/21 100 Carter
現在,我們希望計算客戶 "Carter" 的訂單數。 我們使用如下 SQL 語句: SELECT COUNT(Customer) AS CustomerNilsen FROM OrdersWHERE Customer='Carter'以上 SQL 語句的結果是 2,因為客戶 Carter 共有 2 個訂單:CustomerNilsen
2
SQL COUNT(*) 實例 如果我們省略 WHERE 子句,比如這樣: SELECT COUNT(*) AS NumberOfOrders FROM Orders結果集類似這樣:NumberOfOrders
6
這是表中的總行數。
[編輯本段]SQL COUNT(DISTINCT column_name) 實例
現在,我們希望計算 "Orders" 表中不同客戶的數目。 我們使用如下 SQL 語句: SELECT COUNT(DISTINCT Customer) AS NumberOfCustomers FROM Orders結果集類似這樣: NumberOfCustomers
3
這是 "Orders" 表中不同客戶(Bush, Carter 和 Adams)的數目。 FIRST() 函數FIRST() 函數返回指定的欄位中第一個記錄的值。 提示:可使用 ORDER BY 語句對記錄進行排序。
SQL FIRST() 語法
SELECT FIRST(column_name) FROM table_name
[編輯本段]SQL FIRST() 實例
我們擁有下面這個 "Orders" 表: O_Id OrderDate OrderPrice Customer
1 2008/12/29 1000 Bush
2 2008/11/23 1600 Carter
3 2008/10/05 700 Bush
4 2008/09/28 300 Bush
5 2008/08/06 2000 Adams
6 2008/07/21 100 Carter
現在,我們希望查找 "OrderPrice" 列的第一個值。 我們使用如下 SQL 語句: SELECT FIRST(OrderPrice) AS FirstOrderPrice FROM Orders結果集類似這樣: FirstOrderPrice
1000

[編輯本段]LAST() 函數
LAST() 函數返回指定的欄位中最後一個記錄的值。 提示:可使用 ORDER BY 語句對記錄進行排序。
SQL LAST() 語法
SELECT LAST(column_name) FROM table_name
[編輯本段]SQL LAST() 實例
我們擁有下面這個 "Orders" 表: O_Id OrderDate OrderPrice Customer
1 2008/12/29 1000 Bush
2 2008/11/23 1600 Carter
3 2008/10/05 700 Bush
4 2008/09/28 300 Bush
5 2008/08/06 2000 Adams
6 2008/07/21 100 Carter
現在,我們希望查找 "OrderPrice" 列的最後一個值。 我們使用如下 SQL 語句: SELECT LAST(OrderPrice) AS LastOrderPrice FROM Orders結果集類似這樣: LastOrderPrice
100

[編輯本段]MAX() 函數
MAX 函數返回一列中的最大值。NULL 值不包括在計算中。
SQL MAX() 語法
SELECT MAX(column_name) FROM table_name注釋:MIN 和 MAX 也可用於文本列,以獲得按字母順序排列的最高或最低值。
[編輯本段]SQL MAX() 實例
我們擁有下面這個 "Orders" 表: O_Id OrderDate OrderPrice Customer
1 2008/12/29 1000 Bush
2 2008/11/23 1600 Carter
3 2008/10/05 700 Bush
4 2008/09/28 300 Bush
5 2008/08/06 2000 Adams
6 2008/07/21 100 Carter
現在,我們希望查找 "OrderPrice" 列的最大值。 我們使用如下 SQL 語句: SELECT MAX(OrderPrice) AS LargestOrderPrice FROM Orders結果集類似這樣: LargestOrderPrice
2000

[編輯本段]MIN() 函數
MIN 函數返回一列中的最小值。NULL 值不包括在計算中。
SQL MIN() 語法
SELECT MIN(column_name) FROM table_name注釋:MIN 和 MAX 也可用於文本列,以獲得按字母順序排列的最高或最低值。
[編輯本段]SQL MIN() 實例
我們擁有下面這個 "Orders" 表: O_Id OrderDate OrderPrice Customer
1 2008/12/29 1000 Bush
2 2008/11/23 1600 Carter
3 2008/10/05 700 Bush
4 2008/09/28 300 Bush
5 2008/08/06 2000 Adams
6 2008/07/21 100 Carter
現在,我們希望查找 "OrderPrice" 列的最小值。 我們使用如下 SQL 語句: SELECT MIN(OrderPrice) AS SmallestOrderPrice FROM Orders結果集類似這樣: SmallestOrderPrice
100

[編輯本段]SUM() 函數
SUM 函數返回數值列的總數(總額)。
SQL SUM() 語法
SELECT SUM(column_name) FROM table_name
[編輯本段]SQL SUM() 實例
我們擁有下面這個 "Orders" 表: O_Id OrderDate OrderPrice Customer
1 2008/12/29 1000 Bush
2 2008/11/23 1600 Carter
3 2008/10/05 700 Bush
4 2008/09/28 300 Bush
5 2008/08/06 2000 Adams
6 2008/07/21 100 Carter
現在,我們希望查找 "OrderPrice" 欄位的總數。 我們使用如下 SQL 語句: SELECT SUM(OrderPrice) AS OrderTotal FROM Orders結果集類似這樣: OrderTotal
5700
GROUP BY 語句合計函數 (比如 SUM) 常常需要添加 GROUP BY 語句。
[編輯本段]GROUP BY 語句
GROUP BY 語句用於結合合計函數,根據一個或多個列對結果集進行分組。
SQL GROUP BY 語法
SELECT column_name, aggregate_function(column_name)FROM table_nameWHERE column_name operator valueGROUP BY column_name
[編輯本段]SQL GROUP BY 實例
我們擁有下面這個 "Orders" 表: O_Id OrderDate OrderPrice Customer
1 2008/12/29 1000 Bush
2 2008/11/23 1600 Carter
3 2008/10/05 700 Bush
4 2008/09/28 300 Bush
5 2008/08/06 2000 Adams
6 2008/07/21 100 Carter
現在,我們希望查找每個客戶的總金額(總訂單)。 我們想要使用 GROUP BY 語句對客戶進行組合。 我們使用下列 SQL 語句: SELECT Customer,SUM(OrderPrice) FROM OrdersGROUP BY Customer結果集類似這樣: Customer SUM(OrderPrice)
Bush 2000
Carter 1700
Adams 2000
很棒吧,對不對? 讓我們看一下如果省略 GROUP BY 會出現什麼情況: SELECT Customer,SUM(OrderPrice) FROM Orders結果集類似這樣: Customer SUM(OrderPrice)
Bush 5700
Carter 5700
Bush 5700
Bush 5700
Adams 5700
Carter 5700
上面的結果集不是我們需要的。 那麼為什麼不能使用上面這條 SELECT 語句呢?解釋如下:上面的 SELECT 語句指定了兩列(Customer 和 SUM(OrderPrice))。"SUM(OrderPrice)" 返回一個單獨的值("OrderPrice" 列的總計),而 "Customer" 返回 6 個值(每個值對應 "Orders" 表中的每一行)。因此,我們得不到正確的結果。不過,您已經看到了,GROUP BY 語句解決了這個問題。
[編輯本段]GROUP BY 一個以上的列
我們也可以對一個以上的列應用 GROUP BY 語句,就像這樣: SELECT Customer,OrderDate,SUM(OrderPrice) FROM OrdersGROUP BY Customer,OrderDate
[編輯本段]HAVING 子句
在 SQL 中增加 HAVING 子句原因是,WHERE 關鍵字無法與合計函數一起使用。
SQL HAVING 語法
SELECT column_name, aggregate_function(column_name)FROM table_nameWHERE column_name operator valueGROUP BY column_nameHAVING aggregate_function(column_name) operator value
[編輯本段]SQL HAVING 實例
我們擁有下面這個 "Orders" 表: O_Id OrderDate OrderPrice Customer
1 2008/12/29 1000 Bush
2 2008/11/23 1600 Carter
3 2008/10/05 700 Bush
4 2008/09/28 300 Bush
5 2008/08/06 2000 Adams
6 2008/07/21 100 Carter
現在,我們希望查找訂單總金額少於 2000 的客戶。 我們使用如下 SQL 語句: SELECT Customer,SUM(OrderPrice) FROM OrdersGROUP BY CustomerHAVING SUM(OrderPrice)<2000結果集類似: Customer SUM(OrderPrice)
Carter 1700
現在我們希望查找客戶 "Bush" 或 "Adams" 擁有超過 1500 的訂單總金額。 我們在 SQL 語句中增加了一個普通的 WHERE 子句: SELECT Customer,SUM(OrderPrice) FROM OrdersWHERE Customer='Bush' OR Customer='Adams'GROUP BY CustomerHAVING SUM(OrderPrice)>1500結果集: Customer SUM(OrderPrice)
Bush 2000
Adams 2000

[編輯本段]UCASE() 函數
UCASE 函數把欄位的值轉換為大寫。
SQL UCASE() 語法
SELECT UCASE(column_name) FROM table_name
[編輯本段]SQL UCASE() 實例
我們擁有下面這個 "Persons" 表: Id LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Street Beijing
現在,我們希望選取 "LastName" 和 "FirstName" 列的內容,然後把 "LastName" 列轉換為大寫。 我們使用如下 SQL 語句: SELECT UCASE(LastName) as LastName,FirstName FROM Persons結果集類似這樣: LastName FirstName
ADAMS John
BUSH George
CARTER Thomas

[編輯本段]LCASE() 函數
LCASE 函數把欄位的值轉換為小寫。
SQL LCASE() 語法
SELECT LCASE(column_name) FROM table_name
[編輯本段]SQL LCASE() 實例
我們擁有下面這個 "Persons" 表: Id LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Street Beijing
現在,我們希望選取 "LastName" 和 "FirstName" 列的內容,然後把 "LastName" 列轉換為小寫。 我們使用如下 SQL 語句: SELECT LCASE(LastName) as LastName,FirstName FROM Persons結果集類似這樣: LastName FirstName
adams John
bush George
carter Thomas

[編輯本段]MID() 函數
MID 函數用於從文本欄位中提取字元。
SQL MID() 語法
SELECT MID(column_name,start[,length]) FROM table_name參數 描述
column_name 必需。要提取字元的欄位。
start 必需。規定開始位置(起始值是 1)。
length 可選。要返回的字元數。如果省略,則 MID() 函數返回剩餘文本。

[編輯本段]SQL MID() 實例
我們擁有下面這個 "Persons" 表: Id LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Street Beijing
現在,我們希望從 "City" 列中提取前 3 個字元。 我們使用如下 SQL 語句: SELECT MID(City,1,3) as SmallCity FROM Persons結果集類似這樣: SmallCity
Lon
New
Bei

[編輯本段]LEN() 函數
LEN 函數返迴文本欄位中值的長度。
SQL LEN() 語法
SELECT LEN(column_name) FROM table_name
[編輯本段]SQL LEN() 實例
我們擁有下面這個 "Persons" 表: Id LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Street Beijing
現在,我們希望取得 "City" 列中值的長度。 我們使用如下 SQL 語句: SELECT LEN(City) as LengthOfAddress FROM Persons結果集類似這樣: LengthOfCity
6
8
7

[編輯本段]ROUND() 函數
ROUND 函數用於把數值欄位舍入為指定的小數位數。
SQL ROUND() 語法
SELECT ROUND(column_name,decimals) FROM table_name參數 描述
column_name 必需。要舍入的欄位。
decimals 必需。規定要返回的小數位數。

[編輯本段]SQL ROUND() 實例
我們擁有下面這個 "Procts" 表: Prod_Id ProctName Unit UnitPrice
1 gold 1000 g 32.35
2 silver 1000 g 11.56
3 copper 1000 g 6.85
現在,我們希望把名稱和價格舍入為最接近的整數。 我們使用如下 SQL 語句: SELECT ProctName, ROUND(UnitPrice,0) as UnitPrice FROM Procts結果集類似這樣: ProctName UnitPrice
gold 32
silver 12
copper 7

[編輯本段]NOW() 函數
NOW 函數返回當前的日期和時間。
SQL NOW() 語法
SELECT NOW() FROM table_name
[編輯本段]SQL NOW() 實例
我們擁有下面這個 "Procts" 表: Prod_Id ProctName Unit UnitPrice
1 gold 1000 g 32.35
2 silver 1000 g 11.56
3 copper 1000 g 6.85
現在,我們希望顯示當天的日期所對應的名稱和價格。 我們使用如下 SQL 語句: SELECT ProctName, UnitPrice, Now() as PerDate FROM Procts結果集類似這樣: ProctName UnitPrice PerDate
gold 32.35 12/29/2008 11:36:05 AM
silver 11.56 12/29/2008 11:36:05 AM
copper 6.85 12/29/2008 11:36:05 AM

[編輯本段]FORMAT() 函數
FORMAT 函數用於對欄位的顯示進行格式化。
SQL FORMAT() 語法
SELECT FORMAT(column_name,format) FROM table_name參數 描述
column_name 必需。要格式化的欄位。
format 必需。規定格式。

[編輯本段]SQL FORMAT() 實例
我們擁有下面這個 "Procts" 表: Prod_Id ProctName Unit UnitPrice
1 gold 1000 g 32.35
2 silver 1000 g 11.56
3 copper 1000 g 6.85
現在,我們希望顯示每天日期所對應的名稱和價格(日期的顯示格式是 "YYYY-MM-DD")。 我們使用如下 SQL 語句: SELECT ProctName, UnitPrice, FORMAT(Now(),'YYYY-MM-DD') as PerDateFROM Procts結果集類似這樣: ProctName UnitPrice PerDate
gold 32.35 12/29/2008
silver 11.56 12/29/2008
copper 6.85 12/29/2008

⑤ SQL 系統函數都是什麼意思

sql中有用戶登錄,不同的用戶有不同的許可權!
一般有用戶sa 和系統自帶用戶 ,如果你自己新建了用戶那麼登錄的話
返回的就是你登陸資料庫的用戶名了!

⑥ SQL有哪些函數

1.絕對值
SQL:select abs(-1) value
O:select abs(-1) value from al
2.取整(大)
S:select ceiling(-1.001) value
O:select ceil(-1.001) value from al
3.取整(小)
S:select floor(-1.001) value
O:select floor(-1.001) value from al
4.取整(截取)
S:select cast(-1.002 as int) value
O:select trunc(-1.002) value from al
5.四捨五入
S:select round(1.23456,4) value 1.23460
O:select round(1.23456,4) value from al 1.2346
6.e為底的冪
S:select Exp(1) value 2.7182818284590451
O:select Exp(1) value from al 2.71828182
7.取e為底的對數
S:select log(2.7182818284590451) value 1
O:select ln(2.7182818284590451) value from al; 1
8.取10為底對數
S:select log10(10) value 1
O:select log(10,10) value from al; 1
9.取平方
S:select SQUARE(4) value 16
O:select power(4,2) value from al 16
10.取平方根
S:select SQRT(4) value 2
O:select SQRT(4) value from al 2
11.求任意數為底的冪
S:select power(3,4) value 81
O:select power(3,4) value from al 81
12.取隨機數
S:select rand() value
O:select sys.dbms_random.value(0,1) value from al;
13.取符號
S:select sign(-8) value -1
O:select sign(-8) value from al -1
----------數學函數
14.圓周率
S:SELECT PI() value 3.1415926535897931
O:不知道
15.sin,cos,tan 參數都以弧度為單位
例如:select sin(PI()/2) value 得到1(SQLServer)
16.Asin,Acos,Atan,Atan2 返回弧度
17.弧度角度互換(SQLServer,Oracle不知道)
DEGREES:弧度-〉角度
RADIANS:角度-〉弧度
---------數值間比較
18. 求集合最大值
S:select max(value) value from
(select 1 value
union
select -2 value
union
select 4 value
union
select 3 value)a
O:select greatest(1,-2,4,3) value from al
19. 求集合最小值
S:select min(value) value from
(select 1 value
union
select -2 value
union
select 4 value
union
select 3 value)a
O:select least(1,-2,4,3) value from al
20.如何處理null值(F2中的null以10代替)
S:select F1,IsNull(F2,10) value from Tbl
O:select F1,nvl(F2,10) value from Tbl
--------數值間比較
21.求字元序號
S:select ascii('a') value
O:select ascii('a') value from al
22.從序號求字元
S:select char(97) value
O:select chr(97) value from al
23.連接
S:select '11'+'22'+'33' value
O:select CONCAT('11','22')||33 value from al
23.子串位置 --返回3
S:select CHARINDEX('s','sdsq',2) value
O:select INSTR('sdsq','s',2) value from al
23.模糊子串的位置 --返回2,參數去掉中間%則返回7
S:select patindex('%d%q%','sdsfasdqe') value
O:oracle沒發現,但是instr可以通過第四霾問 刂瞥魷執問?BR> select INSTR('sdsfasdqe','sd',1,2) value from al 返回6
24.求子串
S:select substring('abcd',2,2) value
O:select substr('abcd',2,2) value from al
25.子串代替 返回aijklmnef
S:SELECT STUFF('abcdef', 2, 3, 'ijklmn') value
O:SELECT Replace('abcdef', 'bcd', 'ijklmn') value from al
26.子串全部替換
S:沒發現
O:select Translate('fasdbfasegas','fa','我' ) value from al
27.長度
S:len,datalength
O:length
28.大小寫轉換 lower,upper
29.單詞首字母大寫
S:沒發現
O:select INITCAP('abcd dsaf df') value from al
30.左補空格(LPAD的第一個參數為空格則同space函數)
S:select space(10)+'abcd' value
O:select LPAD('abcd',14) value from al
31.右補空格(RPAD的第一個參數為空格則同space函數)
S:select 'abcd'+space(10) value
O:select RPAD('abcd',14) value from al
32.刪除空格
S:ltrim,rtrim
O:ltrim,rtrim,trim
33. 重復字元串
S:select REPLICATE('abcd',2) value
O:沒發現
34.發音相似性比較(這兩個單詞返回值一樣,發音相同)
S:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe')
O:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe') from al
SQLServer中用SELECT DIFFERENCE('Smithers', 'Smythers') 比較soundex的差
返回0-4,4為同音,1最高
--------------日期函數
35.系統時間
S:select getdate() value
O:select sysdate value from al
36.前後幾日
直接與整數相加減
37.求日期
S:select convert(char(10),getdate(),20) value
O:select trunc(sysdate) value from al
select to_char(sysdate,'yyyy-mm-dd') value from al
38.求時間
S:select convert(char(8),getdate(),108) value
O:select to_char(sysdate,'hh24:mm:ss') value from al
39.取日期時間的其他部分
S:DATEPART 和 DATENAME 函數 (第一個參數決定)
O:to_char函數 第二個參數決定
參數---------------------------------下表需要補充
year yy, yyyy
quarter qq, q (季度)
month mm, m (m O無效)
dayofyear dy, y (O表星期)
day dd, d (d O無效)
week wk, ww (wk O無效)
weekday dw (O不清楚)
Hour hh,hh12,hh24 (hh12,hh24 S無效)
minute mi, n (n O無效)
second ss, s (s O無效)
millisecond ms (O無效)
----------------------------------------------
40.當月最後一天
S:不知道
O:select LAST_DAY(sysdate) value from al
41.本星期的某一天(比如星期日)
S:不知道
O:SELECT Next_day(sysdate,7) vaule FROM DUAL;
42.字元串轉時間
S:可以直接轉或者select cast('2004-09-08'as datetime) value
O:SELECT To_date('2004-01-05 22:09:38','yyyy-mm-dd hh24-mi-ss') vaule FROM DUAL;
43.求兩日期某一部分的差(比如秒)
S:select datediff(ss,getdate(),getdate()+12.3) value
O:直接用兩個日期相減(比如d1-d2=12.3)
SELECT (d1-d2)*24*60*60 vaule FROM DUAL;
44.根據差值求新的日期(比如分鍾)
S:select dateadd(mi,8,getdate()) value
O:SELECT sysdate+8/60/24 vaule FROM DUAL;
45.求不同時區時間
S:不知道
O:SELECT New_time(sysdate,'ydt','gmt' ) vaule FROM DUAL;
-----時區參數,北京在東8區應該是Ydt-------
AST ADT 大西洋標准時間
BST BDT 白令海標准時間
CST CDT 中部標准時間
EST EDT 東部標准時間
GMT 格林尼治標准時間
HST HDT 阿拉斯加—夏威夷標准時間
MST MDT 山區標准時間
NST 紐芬蘭標准時間
PST PDT 太平洋標准時間
YST YDT YUKON標准時間
Oracle支持的字元函數和它們的Microsoft SQL Server等價函數:
函數 Oracle Microsoft SQL Server
把字元轉換為ASCII ASCII ASCII
字串連接 CONCAT (expression + expression)
把ASCII轉換為字元 CHR CHAR
返回字元串中的開始字元(左起) INSTR CHARINDEX
把字元轉換為小寫 LOWER LOWER
把字元轉換為大寫 UPPER UPPER
填充字元串的左邊 LPAD N/A
清除開始的空白 LTRIM LTRIM
清除尾部的空白 RTRIM RTRIM
字元串中的起始模式(pattern) INSTR PATINDEX
多次重復字元串 RPAD REPLICATE
字元串的語音表示 SOUNDEX SOUNDEX
重復空格的字串 RPAD SPACE
從數字數據轉換為字元數據 TO_CHAR STR
子串 SUBSTR SUBSTRING
替換字元 REPLACE STUFF
將字串中的每個詞首字母大寫 INITCAP N/A
翻譯字元串 TRANSLATE N/A
字元串長度 LENGTH DATELENGTH or LEN
列表中最大的字元串 GREATEST N/A
列表中最小的字元串 LEAST N/A
如果為NULL則轉換字串 NVL ISNULL
日期函數
函數 Oracle Microsoft SQL Server
日期相加 (date column +/- value) or
ADD_MONTHS DATEADD
兩個日期的差 (date column +/- value) or
MONTHS_BETWEEN DATEDIFF
當前日期和時間 SYSDATE GETDATE()
一個月的最後一天 LAST_DAY N/A
時區轉換 NEW_TIME N/A
日期後的第一個周日 NEXT_DAY N/A
代表日期的字元串 TO_CHAR DATENAME
代表日期的整數 TO_NUMBER
(TO_CHAR)) DATEPART
日期舍入 ROUND CONVERT
日期截斷 TRUNC CONVERT
字元串轉換為日期 TO_DATE CONVERT
如果為NULL則轉換日期 NVL ISNULL
轉換函數
函數 Oracle Microsoft SQL Server
數字轉換為字元 TO_CHAR CONVERT
字元轉換為數字 TO_NUMBER CONVERT
日期轉換為字元 TO_CHAR CONVERT
字元轉換為日期 TO_DATE CONVERT
16進制轉換為2進制 HEX_TO_RAW CONVERT
2進制轉換為16進制 RAW_TO_HEX CONVERT
其它行級別的函數
函數 Oracle Microsoft SQL Server
返回第一個非空表達式 DECODE COALESCE
當前序列值 CURRVAL N/A
下一個序列值 NEXTVAL N/A
如果exp1 = exp2, 返回null DECODE NULLIF
用戶登錄賬號ID數字 UID SUSER_ID
用戶登錄名 USER SUSER_NAME
用戶資料庫ID數字 UID USER_ID
用戶資料庫名 USER USER_NAME
當前用戶 CURRENT_USER CURRENT_USER
用戶環境(audit trail) USERENV N/A
在CONNECT BY子句中的級別 LEVEL N/A
合計函數
函數 Oracle Microsoft SQL Server
Average AVG AVG
Count COUNT COUNT
Maximum MAX MAX
Minimum MIN MIN
Standard deviation STDDEV STDEV or STDEVP
Summation SUM SUM
Variance VARIANCE VAR or VARP
Oracle還有一個有用的函數EXTRACT,提取並且返回日期時間或時間間隔表達式中特定的時間域:
EXTRACT(YEAR FROM 日期)

⑦ SQL函數的介紹

在 SQL 中,基本的函數類型和種類有若干種。函數的基本類型是: Aggregate 函數 Scalar 函數

⑧ sql函數和過程的正確描述是什麼

區別如下:

  1. 存儲過程可以返回多個變數,函數只能返回一個,函數是可以嵌入在sql語句中使用的,而存儲過程不可以。

  2. 對於函數來書可以返回值或者表對象,而存儲過程來說可以返回參數。

  3. 函數可以通過return 語句返回函數值,而存儲過程不能。

  4. 當存儲過程和函數被執行的時候,SQL Manager會到procere cache中去取相應的查詢語句,如果在procere cache里沒有相應的查詢語句,SQL Manager就會對存儲過程和函數進行編譯。

sql示例:

  1. 創建函數、查找函數:

(8)sql屬於函數擴展閱讀

存儲過程在大型資料庫系統中,一組為了完成特定功能的SQL 語句集,它存儲在資料庫中,一次編譯後永久有效,用戶通過指定存儲過程的名字並給出參數(如果該存儲過程帶有參數)來執行它。存儲過程是資料庫中的一個重要對象。

在 SQL 中,基本的函數類型和種類有若干種。函數的基本類型是: Aggregate 函數 Scalar 函數

⑨ SQL 有哪些函數SQL中有哪些函數

聚合函數是對一組值執行計算並返回單一的值的函數,它經常與SELECT語句的GROUP BY子句一同使用,SQL SERVER 中具體有哪些聚合函數呢?我們來一一看一下:

  1. AVG 返回指定組中的平均值,空值被忽略。

  2. 例:select prd_no,avg(qty) from sales group by prd_no

  3. 2. COUNT 返回指定組中項目的數量。

  4. 例:select count(prd_no) from sales

  5. 3. MAX 返回指定數據的最大值。

  6. 例:select prd_no,max(qty) from sales group by prd_no

  7. 4. MIN 返回指定數據的最小值。

  8. 例:select prd_no,min(qty) from sales group by prd_no

  9. 5. SUM 返回指定數據的和,只能用於數字列,空值被忽略。

  10. 例:select prd_no,sum(qty) from sales group by prd_no

  11. 6. COUNT_BIG 返回指定組中的項目數量,與COUNT函數不同的是COUNT_BIG返回bigint值,而COUNT返回的是int值。

  12. 例:select count_big(prd_no) from sales

  13. 7. GROUPING 產生一個附加的列,當用CUBE或ROLLUP運算符添加行時,輸出值為1.當所添加的行不是由CUBE或ROLLUP產生時,輸出值為0.

  14. 例:select prd_no,sum(qty),grouping(prd_no) from sales group by prd_no with rollup

  15. 8. BINARY_CHECKSUM 返回對表中的行或表達式列表計算的二進制校驗值,用於檢測表中行的更改。

  16. 例:select prd_no,binary_checksum(qty) from sales group by prd_no

  17. 9. CHECKSUM_AGG 返回指定數據的校驗值,空值被忽略。

  18. 例:select prd_no,checksum_agg(binary_checksum(*)) from sales group by prd_no

  19. 10. CHECKSUM 返回在表的行上或在表達式列表上計算的校驗值,用於生成哈希索引。

  20. 11. STDEV 返回給定表達式中所有值的統計標准偏差。

  21. 例:select stdev(prd_no) from sales

  22. 12. STDEVP 返回給定表達式中的所有值的填充統計標准偏差。

  23. 例:select stdevp(prd_no) from sales

  24. 13. VAR 返回給定表達式中所有值的統計方差。

  25. 例:select var(prd_no) from sales

  26. 14. VARP 返回給定表達式中所有值的填充的統計方差。

  27. 例:select varp(prd_no) from sales

⑩ sql 語句中那些是聚合函數

常見聚合函數,max(最大)、min(最小)、sum(求和)、avg(平均)等,

示例如下,

1、創建測試表,

create table test_group(id number, value number);