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

sql文本映射函數

發布時間: 2022-11-13 01:56:05

A. 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 日期)

B. 常用的sql函數

--數據操作
2
3 SELECT --從資料庫表中檢索數據行和列
4 INSERT --向資料庫表添加新數據行
5 DELETE --從資料庫表中刪除數據行
6 UPDATE --更新資料庫表中的數據
7
8 --數據定義
9
10 CREATE TABLE --創建一個資料庫表
11 DROP TABLE --從資料庫中刪除表
12 ALTER TABLE --修改資料庫表結構
13 CREATE VIEW --創建一個視圖
14 DROP VIEW --從資料庫中刪除視圖
15 CREATE INDEX --為資料庫表創建一個索引
16 DROP INDEX --從資料庫中刪除索引
17 CREATE PROCEDURE --創建一個存儲過程
18 DROP PROCEDURE --從資料庫中刪除存儲過程
19 CREATE TRIGGER --創建一個觸發器
20 DROP TRIGGER --從資料庫中刪除觸發器
21 CREATE SCHEMA --向資料庫添加一個新模式
22 DROP SCHEMA --從資料庫中刪除一個模式
23 CREATE DOMAIN --創建一個數據值域
24 ALTER DOMAIN --改變域定義
25 DROP DOMAIN --從資料庫中刪除一個域
26
27 --數據控制
28
29 GRANT --授予用戶訪問許可權
30 DENY --拒絕用戶訪問
31 REVOKE --解除用戶訪問許可權
32
33 --事務控制
34
35 COMMIT --結束當前事務
36 ROLLBACK --中止當前事務
37 SET TRANSACTION --定義當前事務數據訪問特徵
38
39 --程序化SQL
40
41 DECLARE --為查詢設定游標
42 EXPLAN --為查詢描述數據訪問計劃
43 OPEN --檢索查詢結果打開一個游標
44 FETCH --檢索一行查詢結果
45 CLOSE --關閉游標
46 PREPARE --為動態執行准備SQL 語句
47 EXECUTE --動態地執行SQL 語句
48 DESCRIBE --描述准備好的查詢
49
50 ---局部變數
51 declare @id varchar(10)
52 --set @id = 'sp'
53 select @id = 'sp'
54
55 ---全局變數
56 ---必須以@@開頭
57 --IF ELSE
58 declare @x int @y int @z int
59 select @x = 1 @y = 2 @z=3
60 if @x > @y
61 print 'x > y' --列印字元串'x > y'
62 else if @y > @z
63 print 'y > z'
64 else print 'z > y'
65 --CASE
66 use pubs
67 update employee
68 set e_wage =
69 case
70 when job_level = 』1』 then e_wage*1.08
71 when job_level = 』2』 then e_wage*1.07
72 when job_level = 』3』 then e_wage*1.06
73 else e_wage*1.05
74 end
75 --WHILE CONTINUE BREAK
76 declare @x int @y int @c int
77 select @x = 1 @y=1
78 while @x < 3
79 begin
80 print @x --列印變數x 的值
81 while @y < 3
82 begin
83 select @c = 100*@x + @y
84 print @c --列印變數c 的值
85 select @y = @y + 1
86 end
87 select @x = @x + 1
88 select @y = 1
89 end
90 --WAITFOR
91
92 --例 等待1 小時2 分零3 秒後才執行SELECT 語句
93
94 waitfor delay 』01:02:03』
95 select * from employee
96
97 --例 等到晚上11 點零8 分後才執行SELECT 語句
98
99 waitfor time 』23:08:00』
100
101
102SELECT
103
104 select *(列名) from table_name(表名) where column_name operator value ex宿主)
105 select * from stock_information where stockid = str(nid)
106 stockname = 'str_name'
107 stockname like '% find that %'
108 stockname like '[a-zA-Z]%' --------- ([]指定值的范圍)
109 stockname like '[^F-M]%' --------- (^排除指定范圍)
110 --------- 只能在使用like關鍵字的where子句中使用通配符)
111 or stockpath = 'path'
112 or stocknumber < 1000
113 and stockindex = 24
114 not stocksex = 'man'
115 stocknumber between 20 and 100
116 stocknumber in(10,20,30)
117 order by stockid desc(asc) --------- 排序,desc-降序,asc-升序
118 order by 1,2 --------- by列號
119 stockname = (select stockname from stock_information where stockid = 4)
120 --------- 子查詢
121 --------- 除非能確保內層select只返回一個行的值
122 --------- 否則應在外層where子句中用一個in限定符
123 select distinct column_name form table_name
124 --------- distinct指定檢索獨有的列值,不重復
125 select stocknumber ,"stocknumber + 10" = stocknumber + 10 from table_name
126 select stockname , "stocknumber" = count(*) from table_name group by stockname
127 --------- group by 將表按行分組,指定列中有相同的值
128 having count(*) = 2 --------- having選定指定的組
129
130 select *
131 from table1, table2
132where table1.id *= table2.id -------- 左外部連接,table1中有的而table2中沒有得以null表示
133 table1.id =* table2.id -------- 右外部連接
134 select stockname from table1
135 union [all] -------- union合並查詢結果集,all-保留重復行
136 select stockname from table2
137
138 insert
139
140 insert into table_name (Stock_name,Stock_number) value ("xxx","xxxx"
141 value (select Stockname , Stocknumber from Stock_table2)
142 -------value為select語句
143
144 update
145
146 update table_name set Stockname = "xxx" [where Stockid = 3]
147 Stockname = default
148 Stockname = null
149 Stocknumber = Stockname + 4
150
151 delete
152
153 delete from table_name where Stockid = 3
154 truncate table 表名 --------- 刪除表中所有行,仍保持表的完整性
155 drop table table_name --------- 完全刪除表
156
157 alter table -------- 修改資料庫表結構
158
159 alter table database.owner.table_name add column_name char(2) null ..
160 sp_help 表名 -------- 顯示表已有特徵
161 create table table_name (name char(20), age smallint, lname varchar(30))
162 insert into table_name select -------- 實現刪除列的方法(創建新表)
163 alter table table_name drop constraint Stockname_default
164 --------- 刪除Stockname的default約束
165
166
167常用函數(function)
168轉換函數
169convert(數據類型,值,格式)
170
171 統計函數
172
173 AVG --求平均值
174 COUNT --統計數目
175 MAX --求最大值
176 MIN --求最小值
177 SUM --求和
178 STDEV()
179
180 --STDEV()函數返回表達式中所有數據的標准差
181 --STDEVP()
182 --STDEVP()函數返回總體標准差
183
184 VAR()
185
186 --VAR()函數返回表達式中所有值的統計變異數
187
188 VARP()
189
190 --VARP()函數返回總體變異數
191
192 算術函數
193
194 三角函數
195
196 SIN(float_expression) --返回以弧度表示的角的正弦
197 COS(float_expression) --返回以弧度表示的角的餘弦
198 TAN(float_expression) --返回以弧度表示的角的正切
199 COT(float_expression) --返回以弧度表示的角的餘切
200
201 反三角函數
202
203 ASIN(float_expression) --返回正弦是FLOAT 值的以弧度表示的角
204 ACOS(float_expression) --返回餘弦是FLOAT 值的以弧度表示的角
205 ATAN(float_expression) --返回正切是FLOAT 值的以弧度表示的角
206 ATAN2(float_expression1,float_expression2)
207 ------返回正切是float_expression1 /float_expres-sion2的以弧度表示的角
208 DEGREES(numeric_expression)
209 ------把弧度轉換為角度返回與表達式相同的數據類型可為
210 ------INTEGER/MONEY/REAL/FLOAT 類型
211 RADIANS(numeric_expression)
212------把角度轉換為弧度返回與表達式相同的數據類型可為
213
214 ------INTEGER/MONEY/REAL/FLOAT 類型
215 EXP(float_expression) --返回表達式的指數值
216 LOG(float_expression) --返回表達式的自然對數值
217 LOG10(float_expression)--返回表達式的以10 為底的對數值
218 SQRT(float_expression) --返回表達式的平方根
219
220 取近似值函數
221
222 CEILING(numeric_expression)
223-------返回>=表達式的最大整數返回的數據類型與表達式相同可為
224 -------INTEGER/MONEY/REAL/FLOAT 類型
225 FLOOR(numeric_expression)
226-------返回<=表達式的最小整數返回的數據類型與表達式相同可為
227 -------INTEGER/MONEY/REAL/FLOAT 類型
228 ROUND(numeric_expression)
229-------返回以integer_expression 為精度的四捨五入值返回的數據
230 -------類型與表達式相同可為INTEGER/MONEY/REAL/FLOAT 類型
231 ABS(numeric_expression)
232-------返回表達式的絕對值返回的數據類型與表達式相同可為
233 -------INTEGER/MONEY/REAL/FLOAT 類型
234 SIGN(numeric_expression)
235-------測試參數的正負號返回0 零值1 正數或-1 負數返回的數據類型
236 -------與表達式相同可為INTEGER/MONEY/REAL/FLOAT 類型
237 PI() -------返回值為π 即3.1415926535897936
238 RAND([integer_expression])
239-------用任選的[integer_expression]做種子值得出0-1 間的隨機浮點數
240字元串函數
241
242 ASCII() ------函數返回字元表達式最左端字元的ASCII 碼值
243 CHAR() ------函數用於將ASCII 碼轉換為字元
244 ------如果沒有輸入0 ~ 255 之間的ASCII 碼值CHAR 函數會返回一個NULL 值
245 LOWER() ------函數把字元串全部轉換為小寫
246 UPPER() ------函數把字元串全部轉換為大寫
247 STR() ------函數把數值型數據轉換為字元型數據
248 LTRIM() ------函數把字元串頭部的空格去掉
249 RTRIM() ------函數把字元串尾部的空格去掉
250 LEFT(),RIGHT(),SUBSTRING() --函數返回部分字元串
251 CHARINDEX(),PATINDEX() --函數返回字元串中某個指定的子串出現的開始位置
252 SOUNDEX() ------函數返回一個四位字元碼
253 ------SOUNDEX函數可用來查找聲音相似的字元串但SOUNDEX函數對數字和漢字均只返回0 值
254 DIFFERENCE() ------函數返回由SOUNDEX 函數返回的兩個字元表達式的值的差異
255 ------0 兩個SOUNDEX 函數返回值的第一個字元不同
256 ------1 兩個SOUNDEX 函數返回值的第一個字元相同
257 ------2 兩個SOUNDEX 函數返回值的第一二個字元相同
258 ------3 兩個SOUNDEX 函數返回值的第一二三個字元相同
259 ------4 兩個SOUNDEX 函數返回值完全相同同
260 QUOTENAME() ------函數返回被特定字元括起來的字元串
261
262 /**//**//**//*select quotename('abc', '{') quotename('abc')
263 運行結果如下
264
265 {
266 {abc} [abc]*/
267 REPLICATE() ------函數返回一個重復character_expression 指定次數的字元串
268 /**//**//**//*select replicate('abc', 3) replicate( 'abc', -2)
269
270 運行結果如下
271
272 abcabcabc NULL*/
273 REVERSE() ------函數將指定的字元串的字元排列順序顛倒
274 REPLACE() ------函數返回被替換了指定子串的字元串
275 /**//**//**//*select replace('abc123g', '123', 'def')
276
277 運行結果如下
278
279 abcdefg*/
280
281 SPACE() ------函數返回一個有指定長度的空白字元串
282 STUFF() ------函數用另一子串替換字元串指定位置長度的子串
283
284 數據類型轉換函數
285
286 CAST() 函數語法如下
287 CAST() ( AS [ length ])
288 CONVERT() 函數語法如下
289 CONVERT() ([ length ], [, style])
290 select cast(100+99 as char) convert(varchar(12), getdate())
291
292 運行結果如下
293 199 Jan 15 2000
294
295 日期函數
296
297 DAY() ------函數返回date_expression 中的日期值
298 MONTH() ------函數返回date_expression 中的月份值
299 YEAR() ------函數返回date_expression 中的年份值
300 DATEADD( , ,)
301 -----函數返回指定日期date 加上指定的額外日期間隔number 產生的新日期
302 DATEDIFF( , ,)
303 -----函數返回兩個指定日期在datepart 方面的不同之處
304
305 DATENAME( , ------函數以字元串的形式返回日期的指定部分
306 DATEPART( , ------函數以整數值的形式返回日期的指定部分
307 GETDATE() ------函數以DATETIME 的預設格式返回系統當前的日期和時間
308
309 系統函數
310
311 APP_NAME() ------函數返回當前執行的應用程序的名稱
312 COALESCE() -----函數返回眾多表達式中第一個非NULL 表達式的值
313 COL_LENGTH(<'table_name'>, <'column_name'> ----函數返回表中指定欄位的長度值
314 COL_NAME(, ----函數返回表中指定欄位的名稱即列名
315 DATALENGTH() -----函數返回數據表達式的數據的實際長度
316 DB_ID(['database_name']) ------函數返回資料庫的編號
317 DB_NAME(database_id) ------函數返回資料庫的名稱
318 HOST_ID() -----函數返回伺服器端計算機的名稱
319 HOST_NAME() -----函數返回伺服器端計算機的名稱
320 IDENTITY([, seed increment]) [AS column_name])
321 --IDENTITY() 函數只在SELECT INTO 語句中使用用於插入一個identity column列到新表中
322 /**//**//**//*select identity(int, 1, 1) as column_name
323 into newtable
324 from oldtable*/
325
326 ISDATE() ----函數判斷所給定的表達式是否為合理日期
327 ISNULL(, --函數將表達式中的NULL 值用指定值替換
328 ISNUMERIC() ----函數判斷所給定的表達式是否為合理的數值
329 NEWID() ----函數返回一個UNIQUEIDENTIFIER 類型的數值
330 NULLIF(,
331 ----NULLIF 函數在expression1 與expression2 相等時返回NULL 值若不相等時則返回xpression1 的值

C. sql查詢中文本連接用什麼函數

--sqlserver用+
select'你'+'好'
--oracle用||
select'你'||'好'fromal

D. 什麼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

E. SQL語句中column的意思和常用法 是怎麼的 謝謝 麻煩解釋下

sql:column() 函數 (XQuery)

如主題在 XML 內部綁定關系數據中所述,當使用 XML 數據類型方法在 XQuery 內顯示關系值時,可以使用 sql:column(() 函數。

例如,使用 query() 方法(XML 數據類型)對存儲在變數或 xml 類型列中的 XML 實例指定查詢。有時,您可能還希望查詢使用其他非 XML 列中的值同時引入關系數據和 XML 數據。若要達到此目的,請使用 sql:column() 函數。

SQL 值將映射到相應的 XQuery 值,其類型將為 XQuery 基類型,等效於相應的 SQL 類型。

語法

sql:column("columnName")
注釋
請注意,引用在 XQuery 的 sql:column() 函數中指定的列是指引用正在處理的行中的列。

在 SQL Server 中,僅可在 XML-DML 插入語句源表達式的上下文中引用 xml 實例,否則無法引用 xml 類型的列或 CLR 用戶定義類型的列。

JOIN 操作不支持 sql:column() 函數。可改用 APPLY 操作。

示例
A. 使用 sql:column() 檢索 XML 中的關系值
在構造 XML 時,下面的示例說明了如何從非 XML 關系列中檢索值以綁定 XML 數據和關系數據。

該查詢將構造如下形式的 XML 內容:

復制代碼
<Proct ProctID="771" ProctName="Mountain-100 Silver, 38" ProctPrice="3399.99" ProctModelID="19"
ProctModelName="Mountain 100" />
請注意構造的 XML 中的下列內容:

從 Proct 表中獲取的 ProctID、ProctName 和 ProctPrice 屬性值。

從 ProctModel 表中檢索的 ProctModelID 屬性值。

若要使查詢更加有趣,可以從 xml 類型列 CatalogDescription 中獲取 ProctModelName 屬性值。由於未存儲所有產品型號的 XML 產品型號目錄信息,因此將使用 if 語句檢索該值(如果存在)。
復制代碼
SELECT P.ProctID, CatalogDescription.query('
declare namespace pd="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProctModelDescription";
<Proct
ProctID= "{ sql:column("P.ProctID") }"
ProctName= "{ sql:column("P.Name") }"
ProctPrice= "{ sql:column("P.ListPrice") }"
ProctModelID= "{ sql:column("PM.ProctModelID") }" >
{ if (not(empty(/pd:ProctDescription))) then
attribute ProctModelName { /pd:ProctDescription[1]/@ProctModelName }
else
()
}
</Proct>
') as Result
FROM Proction.ProctModel PM, Proction.Proct P
WHERE PM.ProctModelID = P.ProctModelID
AND CatalogDescription is not NULL
ORDER By PM.ProctModelID
請注意上述查詢的以下方面:

由於從兩個不同的表檢索值,因此 FROM 子句指定兩個表。WHERE 子句中的條件用於篩選結果,並只檢索產品型號具有目錄說明的產品。

XQuery Prolog 中的關鍵字 namespace 用於定義查詢主體中使用的 XML 命名空間前綴「pd」。請注意,表別名(「P」和「PM」)是在查詢本身的 FROM 子句中定義的。

sql:column() 函數用於將非 XML 值引入 XML。

下面是部分結果:

復制代碼
ProctID Result
-----------------------------------------------------------------
771 <Proct ProctID="771" ProctName="Mountain-100 Silver, 38"
ProctPrice="3399.99" ProctModelID="19"
ProctModelName="Mountain 100" />
...
下面的查詢構造了包含產品特定信息的 XML。此信息包括 ProctID、ProctName、ProctPrice 以及屬於特定產品型號 (ProctModelID=19) 的所有產品的 ProctModelName(如果有)。然後,將 XML 分配給 xml 類型的 @x 變數。

復制代碼
declare @x xml
SELECT @x = CatalogDescription.query('
declare namespace pd="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProctModelDescription";
<Proct
ProctID= "{ sql:column("P.ProctID") }"
ProctName= "{ sql:column("P.Name") }"
ProctPrice= "{ sql:column("P.ListPrice") }"
ProctModelID= "{ sql:column("PM.ProctModelID") }" >
{ if (not(empty(/pd:ProctDescription))) then
attribute ProctModelName { /pd:ProctDescription[1]/@ProctModelName }
else
()
}
</Proct>
')
FROM Proction.ProctModel PM, Proction.Proct P
WHERE PM.ProctModelID = P.ProctModelID
And P.ProctModelID = 19
select @x

F. 如何編寫Java的MyBatis框架中SQL語句映射部分

1..增刪改查、參數、緩存
1.1
select
舉例如下:
查詢學員信息,一個String參數,參數標識為#{studentID},並返回一個StudentEntity類型的對象
<select
id="getStudent"
parameterType="String"
resultMap="studentResultMap">
SELECT
ST.STUDENT_ID,
ST.STUDENT_NAME,
ST.STUDENT_SEX,
ST.STUDENT_BIRTHDAY,
ST.CLASS_ID
FROM
STUDENT_TBL
ST
WHERE
ST.STUDENT_ID
=
#{studentID}
</select>
1.2
insert
舉例如下:
插入數據,一個String參數,參數標識為#{studentID},並返回一個StudentEntity類型的對象。
<insert
id="insertStudent"
parameterType="StudentEntity">
INSERT
INTO
STUDENT_TBL
(STUDENT_ID,
STUDENT_NAME,
STUDENT_SEX,
STUDENT_BIRTHDAY,
CLASS_ID)
VALUES
(#{studentID},
#{studentName},
#{studentSex},
#{studentBirthday},
#{classEntity.classID})
</insert>
1.3
update
舉例如下:
更新學員信息
<update
id="updateStudent"
parameterType="StudentEntity">
UPDATE
STUDENT_TBL
SET
STUDENT_TBL.STUDENT_NAME
=
#{studentName},
STUDENT_TBL.STUDENT_SEX
=
#{studentSex},
STUDENT_TBL.STUDENT_BIRTHDAY
=
#{studentBirthday},
STUDENT_TBL.CLASS_ID
=
#{classEntity.classID}
WHERE
STUDENT_TBL.STUDENT_ID
=
#{studentID};
</update>
1.4
delete
舉例如下:
刪除學員信息:
<delete
id="deleteStudent"
parameterType="StudentEntity">
DELETE
FROM
STUDENT_TBL
WHERE
STUDENT_ID
=
#{studentID}
</delete>
2.ResultMap
SQL映射xml文件是為了放置所有sql語句,需要定義一個workspace,正常是介面類的路徑。SQL語句映射文件寫好後,需要在MyBatis配置文件mappers標簽中引用。
舉例如下:
<mappers>
<mapper
resource="cn/te/ninixie/manager/data/mappers/UserMapper.xml"
/>
<mapper
resource="cn/te/ninixie/manager/data/mappers/StudentMapper.xml"
/>
<mapper
resource="cn/te/ninixie/manager/data/mappers/ClassMapper.xml"
/>
<mapper
resource="cn/te/ninixie/manager/data/mappers/TeacherMapper.xml"
/>
</mappers>
當Java介面與xml文件在一個相對路徑下,那麼MyBaits配置文件的napper中可以不用聲明。
ResultMaps的作用,就是簡單的語句而不需要多餘的結果映射,更多復雜的語句,除了只要一些絕對必須的語句描述關系以外,就不需要其它的了。
resultMap屬性:type為java實體類;id為此resultMap的標識。
resultMap可以設置的映射:
2.1
constructor:用來將結果發射給一個實例化好的類的構造器
idArg_ID
參數:將結果集標記為ID,為了方便全局調用
arg
–反射到構造器的通常結果
2.2
id結果,將結果集標記為ID,為了方便全局調用
2.3
result:反射到JavaBean的普通結果
2.4
association:復雜類型的結合,多個結果合成的類型
2.5
collection:復雜類型結合
2.6
resultMap的集合,也可以引用到其他
2.7
discriminator:使用一個結果值為了決定使用哪個結果集。

G. SQL CONVERT()函數的問題

第三十一章 SQL函數 CONVERT
將給定表達式轉換為指定數據類型的函數。
CONVERT(datatype,expression[,format-code])

{fn CONVERT(expression,datatype)}
參數
expression - 要轉換的表達式。
datatype - 要將表達式轉換為的數據類型。
format - 可選-指定日期和時間格式的整數代碼,用於在日期/時間/時間戳數據類型和字元數據類型之間進行轉換。 此參數僅用於通用標量語法形式。
描述
這里描述了CONVERT函數的兩種不同實現。 兩者都將一種數據類型中的表達式轉換為另一種數據類型中的相應值。 兩者都執行日期和時間轉換。
注意:這兩個CONVERT實現中的參數以不同的順序表示。 第一個是與MS SQL Server兼容的通用 IRIS標量函數,它接受三個參數。 第二個是帶有兩個參數的 ODBC標量函數。 下面的文本將分別處理這兩種形式的CONVERT。
CONVERT(datatype,expression)支持流數據的轉換。 例如,可以將字元流欄位的內容轉換為數據類型為VARCHAR的字元串。
{fn CONVERT(expression,datatype)}不支持流數據的轉換; 指定要表達的流欄位將導致SQLCODE -37錯誤。
為兩個版本的CONVERT指定一個無效值將導致SQLCODE -141。
如果表達式沒有定義的數據類型(例如ObjectScript提供的主機變數),則其數據類型默認為字元串數據類型。
CONVERT(datatype,expression,format-code)
可以通過執行VARCHAR-to-VARCHAR轉換來截斷字元串,指定輸出字元串長度小於表達式字元串長度。
在使用CONVERT(或CAST)時,如果字元數據類型(如CHAR或VARCHAR)沒有指定長度,則默認的最大長度為30個字元。 如果二進制數據類型(如binary或VARBINARY)沒有指定長度,則默認的最大長度為30個字元。 否則,這些沒有指定長度的數據類型將被映射到一個1個字元的MAXLEN,如data types表所示。
可以執行BIT數據類型轉換。 允許的值為1、0或NULL。 如果指定任何其他值,IRIS將發出SQLCODE -141錯誤。 在下面的嵌入式SQL示例中,兩者都是一個NULL的BIT轉換:
ClassMethod Convert()
{
s a=""
&sql(
SELECT CONVERT(BIT,:a),
CONVERT(BIT,NULL)
INTO :x,:y)
w !,"SQLCODE=",SQLCODE
w !,"the host variable is:",x
w !,"the NULL keyword is:",y
}
可選的format-code參數指定日期、datetime或時間格式。 該格式既可用於定義從日期/時間/時間戳數據類型轉換為字元串時的輸出,也可用於定義從字元串轉換為日期/時間/時間戳數據類型時的輸入。 支持以下格式代碼; 輸出兩位數年份的格式代碼列在第一列; 輸出四位數年或不輸出年的格式列在第二列:
Two-digit year codes Four-digit year codes Format
以下是日期和時間轉換的特性:
取值范圍:允許的日期范圍為0001-01-01 ~ 9999-12-31。
默認值:
將時間值轉換為TIMESTAMP、POSIXTIME、DATETIME或SMALLDATETIME時,日期默認為1900-01-01。 注意,對於{fn CONVERT()},日期默認為1841-01-01。
將日期值轉換為TIMESTAMP、POSIXTIME、DATETIME或SMALLDATETIME時,時間默認為00:00:00。

Default Format:如果沒有指定Format -code, CONVERT將嘗試從指定的值確定格式。 如果不能,則默認為格式代碼100。
兩位數年份:從00到49的兩位數年份轉換為21世紀的日期(2000到2049); 從50到99的兩位數年份轉換為20世紀的日期(1950到1999)。
分數秒:分數秒前可以加句號(.)或冒號(:)。 這些符號有不同的含義:
句點是默認值,可用於所有格式代碼。 句號表示標准分數; 因此,12:00:00.4表示十分之四秒,而12:00:00.004表示千分之四秒。 分數精度的位數沒有限制。
冒號只能用於以下格式代碼值:9/109、13/113、14/114、130和131。 冒號表示後面的數字是千分之一秒; 因此12:00:00:4表示四萬分之一秒(12:00:00.004)。 冒號後面的數字限制為3位。

當指定表達式的格式無效或格式與格式代碼不匹配時,將產生SQLCODE -141錯誤。 指定一個不存在的格式代碼將返回1900-01-01 00:00:00。
{fn CONVERT(expression,datatype)}
這是ODBC標量函數。 它支持以下ODBC顯式數據類型轉換。 必須使用「SQL_」關鍵字指定這種形式的CONVERT的數據類型轉換。 在下表中,有兩組轉換數據類型,第一組轉換數據值和數據類型,第二組轉換數據類型,但不轉換數據值:
Source Conversion
SQL_VARCHAR是標準的ODBC表示。 在轉換為SQL_VARCHAR時,日期和時間被轉換為相應的ODBC表示; 數字數據類型值轉換為字元串表示。 從SQL_VARCHAR轉換時,該值必須是有效的ODBC Time、Timestamp或Date表示。
當將時間值轉換為SQL_TIMESTAMP或SQL_POSIXTIME時,未指定的日期默認為1841-01-01。 注意,對於CONVERT(),日期默認為1900-01-01。
將date值轉換為SQL_TIMESTAMP或SQL_POSIXTIME時,時間默認為00:00:00。
在這種語法形式中,小數秒前面可以加句號(.)或冒號(:)。 這些符號有不同的含義。 句號表示標准分數; 因此,12:00:00.4表示十分之四秒,而12:00:00.004表示千分之四秒。 冒號表示接下來的是千分之一秒; 因此12:00:00:4表示千分之四秒。 冒號後面的數字限制為3位。
在轉換為整數數據類型或SQL_DOUBLE數據類型時,數據值(包括日期和時間)將轉換為數字表示。 對於SQL_DATE,這是自1841年1月1日以來的天數。 對於SQL_TIME,這是自午夜以來的秒數。 當遇到非數字字元時,輸入字元串將被截斷。 整數數據類型還截斷十進制數字,返回數字的整數部分。
{fn CONVERT(expression,datatype)}不支持流數據的轉換; 指定要表達的流欄位將導致SQLCODE -37錯誤。
轉換成任何數據類型的NULL仍然是NULL。
空字元串("),或任何非數字字元串值轉換如下:
SQL_VARCHAR和SQL_TIMESTAMP返回提供的值。
數字數據類型轉換為0(零)。
SQL_DATE和SQL_TIME轉換為NULL。
CONVERT 類方法
還可以使用CONVERT()方法調用執行數據類型轉換,使用" SQL_"關鍵字指定數據類型:
$SYSTEM.SQL.Functions.CONVERT(expression,convert-to-type,convert-from-type)
如下示例所示:
WRITE $SYSTEM.SQL.CONVERT(60945,"SQL_VARCHAR","SQL_DATE")
2007-11-11
示例
CONVERT() 示例
下面的示例使用標量語法形式的CONVERT。
下面的示例比較了使用DECIMAL和DOUBLE數據類型對小數的轉換:
SELECT CONVERT(DECIMAL,-123456789.0000123456789) AS DecimalVal,
CONVERT(DOUBLE,-123456789.0000123456789) AS DoubleVal

下面的示例將字元流欄位轉換為VARCHAR文本字元串。 它還使用CHAR_LENGTH顯示字元流欄位的長度:
SELECT Notes,CONVERT(VARCHAR(80),Notes) AS NoteText,CHAR_LENGTH(Notes) AS TextLen
FROM Sample.Employee WHERE Notes IS NOT NULL
下面的例子展示了幾種將出生日期欄位(DOB)轉換為格式化字元串的方法:
SELECT DOB,
CONVERT(VARCHAR(20),DOB) AS DOBDefault,
CONVERT(VARCHAR(20),DOB,100) AS DOB100,
CONVERT(VARCHAR(20),DOB,107) AS DOB107,
CONVERT(VARCHAR(20),DOB,114) AS DOB114,
CONVERT(VARCHAR(20),DOB,126) AS DOB126
FROM Sample.Person

默認格式和代碼100格式是相同的。 因為DOB欄位不包含時間值,所以顯示時間的格式(這里包括默認值100、114和126)提供一個零值,它表示12:00AM(午夜)。 代碼126格式提供了一個不包含空格的日期和時間字元串。
{fn CONVERT()} 示例
下面的示例使用了ODBC語法形式的CONVERT。
下面的嵌入式SQL示例將混合字元串轉換為整數。 IRIS在第一個非數字字元處截斷字元串,然後將結果數字轉換為規范形式:
ClassMethod Convert1()
{
s a="007 James Bond"
&sql(SELECT {fn CONVERT(:a, SQL_INTEGER)} INTO :x)
w !,"SQLCODE=",SQLCODE
w !,"the host variable is:",x
}
DHC-APP>d ##class(PHA.TEST.SQLCommand).Convert1()

SQLCODE=0
the host variable is:7
下面的示例將「DOB」(出生日期)列中的日期轉換為SQL_TIMESTAMP數據類型。
SELECT DOB,{fn CONVERT(DOB,SQL_TIMESTAMP)} AS DOBtoTstamp
FROM Sample.Person

生成的時間戳格式為「yyyy-mm-dd hh:mm:ss」。
下面的示例將「DOB」(出生日期)列中的日期轉換為SQL_INTEGER數據類型。
SELECT DOB,{fn CONVERT(DOB,SQL_INTEGER)} AS DOBtoInt
FROM Sample.Person

下面的示例將「DOB」(出生日期)列中的日期轉換為SQL_VARCHAR數據類型。
SELECT DOB,{fn CONVERT(DOB,SQL_VARCHAR)} AS DOBtoVChar
FROM Sample.Person

生成的字元串格式為:yyyy-mm-dd。

H. 求SQL 函數TO DATE的用法

TO_DATE,就是轉換數據類型,轉換成DATE的數據類型,然後存在表中吧。
如果是VARCHAR類型的話,讀取的時候只能按字元串讀取。不能按日期數據讀取。

I. sql server 將數值轉變成文本的函數

STR (float_expression [ , length [ ,decimal ] ] )
參數

float_expression帶小數點的近似數字 (float) 數據類型的表達式。length總長度。它包括小數點、符號、數字以及空格。默認值為 10。decimal小數點後的位數。decimal 必須小於或等於 16。如果 decimal 大於 16,則會截斷結果,使其保持為小數點後具有十六位。

J. 使用sql函數檢測字元串是否存在對應的字串問題,。

函數分類列表
載入宏和自動化函數
多維數據集函數
資料庫函數
日期和時間函數
工程函數
財務函數
信息函數
邏輯函數
查找和引用函數
數學和三角函數
統計函數
文本函數

-----------------------------------------------------

載入宏和自動化函數
CALL 調用動態鏈接庫或代碼源中的過程
EUROCONVERT 用於將數字轉換為歐元形式,將數字由歐元形式轉換為歐元成員國貨幣形式,或利用歐元作為中間貨幣將數字由某一歐元成員國貨幣轉化為另一歐元成員國貨幣形式(三角轉換關系)
GETPIVOTDATA 返回存儲在數據透視表中的數據
REGISTER.ID 返回已注冊過的指定動態鏈接庫 (DLL) 或代碼源的注冊號
SQL.REQUEST 連接到一個外部的數據源並從工作表中運行查詢,然後將查詢結果以數組的形式返回,無需進行宏編程

多維數據集函數
CUBEKPIMEMBER 返回重要性能指標 (KPI) 名稱、屬性和度量,並顯示單元格中的名稱和屬性。KPI 是一項用於監視單位業績的可量化的指標,如每月總利潤或每季度雇員調整。
CUBEMEMBER 返回多維數據集層次結構中的成員或元組。用於驗證多維數據集內是否存在成員或元組。
CUBEMEMBERPROPERTY 返回多維數據集內成員屬性的值。用於驗證多維數據集內是否存在某個成員名並返回此成員的指定屬性。
CUBERANKEDMEMBER 返回集合中的第 n 個或排在一定名次的成員。用於返回集合中的一個或多個元素,如業績排在前幾名的銷售人員或前 10 名學生。
CUBESET 通過向伺服器上的多維數據集發送集合表達式來定義一組經過計算的成員或元組(這會創建該集合),然後將該集合返回到 Microsoft Office Excel。
CUBESETCOUNT 返回集合中的項數。
CUBEVALUE 返回多維數據集內的匯總值。

資料庫函數
DAVERAGE 返回所選資料庫條目的平均值
DCOUNT 計算資料庫中包含數字的單元格的數量
DCOUNTA 計算資料庫中非空單元格的數量
DGET 從資料庫提取符合指定條件的單個記錄
DMAX 返回所選資料庫條目的最大值
DMIN 返回所選資料庫條目的最小值
DPRODUCT 將資料庫中符合條件的記錄的特定欄位中的值相乘
DSTDEV 基於所選資料庫條目的樣本估算標准偏差
DSTDEVP 基於所選資料庫條目的樣本總體計算標准偏差
DSUM 對資料庫中符合條件的記錄的欄位列中的數字求和
DVAR 基於所選資料庫條目的樣本估算方差
DVARP 基於所選資料庫條目的樣本總體計算方差

日期和時間函數
DATE 返回特定日期的序列號
DATEVALUE 將文本格式的日期轉換為序列號
DAY 將序列號轉換為月份日期
DAYS360 以一年 360 天為基準計算兩個日期間的天數
EDATE 返回用於表示開始日期之前或之後月數的日期的序列號
EOMONTH 返回指定月數之前或之後的月份的最後一天的序列號
HOUR 將序列號轉換為小時
MINUTE 將序列號轉換為分鍾
MONTH 將序列號轉換為月
NETWORKDAYS 返回兩個日期間的全部工作日數
NOW 返回當前日期和時間的序列號
SECOND 將序列號轉換為秒
TIME 返回特定時間的序列號
TIMEVALUE 將文本格式的時間轉換為序列號
TODAY 返回今天日期的序列號
WEEKDAY 將序列號轉換為星期日期
WEEKNUM 將序列號轉換為代表該星期為一年中第幾周的數字
WORKDAY 返回指定的若干個工作日之前或之後的日期的序列號
YEAR 將序列號轉換為年
YEARFRAC 返回代表 start_date 和 end_date 之間整天天數的年分數

工程函數
BESSELI 返回修正的貝賽耳函數 In(x)
BESSELJ 返回貝賽耳函數 Jn(x)
BESSELK 返回修正的貝賽耳函數 Kn(x)
BESSELY 返回貝賽耳函數 Yn(x)
BIN2DEC 將二進制數轉換為十進制數
BIN2HEX 將二進制數轉換為十六進制數
BIN2OCT 將二進制數轉換為八進制數
COMPLEX 將實系數和虛系數轉換為復數
CONVERT 將數字從一種度量系統轉換為另一種度量系統
DEC2BIN 將十進制數轉換為二進制數
DEC2HEX 將十進制數轉換為十六進制數
DEC2OCT 將十進制數轉換為八進制數
DELTA 檢驗兩個值是否相等
ERF 返回誤差函數
ERFC 返回互補錯誤函數
GESTEP 檢驗數字是否大於閾值
HEX2BIN 將十六進制數轉換為二進制數
HEX2DEC 將十六進制數轉換為十進制數
HEX2OCT 將十六進制數轉換為八進制數
IMABS 返回復數的絕對值(模數)
IMAGINARY 返回復數的虛系數
IMARGUMENT 返回參數 theta,即以弧度表示的角
IMCONJUGATE 返回復數的共軛復數
IMCOS 返回復數的餘弦
IMDIV 返回兩個復數的商
IMEXP 返回復數的指數
IMLN 返回復數的自然對數
IMLOG10 返回復數的以 10 為底的對數
IMLOG2 返回復數的以 2 為底的對數
IMPOWER 返回復數的整數冪
IMPRODUCT 返回從 2 到 29 的復數的乘積
IMREAL 返回復數的實系數
IMSIN 返回復數的正弦
IMSQRT 返回復數的平方根
IMSUB 返回兩個復數的差
IMSUM 返回多個復數的和
OCT2BIN 將八進制數轉換為二進制數
OCT2DEC 將八進制數轉換為十進制數
OCT2HEX 將八進制數轉換為十六進制數

財務函數
ACCRINT 返回定期支付利息的債券的應計利息
ACCRINTM 返回在到期日支付利息的債券的應計利息
AMORDEGRC 返回使用折舊系數的每個記帳期的折舊值
AMORLINC 返回每個記帳期的折舊值
COUPDAYBS 返回從付息期開始到成交日之間的天數
COUPDAYS 返回包含成交日的付息期天數
COUPDAYSNC 返回從成交日到下一付息日之間的天數
COUPNCD 返回成交日之後的下一個付息日
COUPNUM 返回成交日和到期日之間的應付利息次數
COUPPCD 返回成交日之前的上一付息日
CUMIPMT 返回兩個付款期之間累積支付的利息
CUMPRINC 返回兩個付款期之間為貸款累積支付的本金
DB 使用固定余額遞減法,返回一筆資產在給定期間內的折舊值
DDB 使用雙倍余額遞減法或其他指定方法,返回一筆資產在給定期間內的折舊值
DISC 返回債券的貼現率
DOLLARDE 將以分數表示的價格轉換為以小數表示的價格
DOLLARFR 將以小數表示的價格轉換為以分數表示的價格
DURATION 返回定期支付利息的債券的每年期限
EFFECT 返回年有效利率
FV 返回一筆投資的未來值
FVSCHEDULE 返回應用一系列復利率計算的初始本金的未來值
INTRATE 返回完全投資型債券的利率
IPMT 返回一筆投資在給定期間內支付的利息
IRR 返回一系列現金流的內部收益率
ISPMT 計算特定投資期內要支付的利息
MDURATION 返回假設面值為 ¥100 的有價證券的 Macauley 修正期限
MIRR 返回正和負現金流以不同利率進行計算的內部收益率
NOMINAL 返回年度的名義利率
NPER 返回投資的期數
NPV 返回基於一系列定期的現金流和貼現率計算的投資的凈現值
ODDFPRICE 返回每張票面為 ¥100 且第一期為奇數的債券的現價
ODDFYIELD 返回第一期為奇數的債券的收益
ODDLPRICE 返回每張票面為 ¥100 且最後一期為奇數的債券的現價
ODDLYIELD 返回最後一期為奇數的債券的收益
PMT 返回年金的定期支付金額
PPMT 返回一筆投資在給定期間內償還的本金
PRICE 返回每張票面為 ¥100 且定期支付利息的債券的現價
PRICEDISC 返回每張票面為 ¥100 的已貼現債券的現價
PRICEMAT 返回每張票面為 ¥100 且在到期日支付利息的債券的現價
PV 返回投資的現值
RATE 返回年金的各期利率
RECEIVED 返回完全投資型債券在到期日收回的金額
SLN 返回固定資產的每期線性折舊費
SYD 返回某項固定資產按年限總和折舊法計算的每期折舊金額
TBILLEQ 返回國庫券的等價債券收益
TBILLPRICE 返回面值 ¥100 的國庫券的價格
TBILLYIELD 返回國庫券的收益率
VDB 使用余額遞減法,返回一筆資產在給定期間或部分期間內的折舊值
XIRR 返回一組現金流的內部收益率,這些現金流不一定定期發生
XNPV 返回一組現金流的凈現值,這些現金流不一定定期發生
YIELD 返回定期支付利息的債券的收益
YIELDDISC 返回已貼現債券的年收益;例如,短期國庫券
YIELDMAT 返回在到期日支付利息的債券的年收益

信息函數
CELL 返回有關單元格格式、位置或內容的信息
ERROR.TYPE 返回對應於錯誤類型的數字
INFO 返回有關當前操作環境的信息
ISBLANK 如果值為空,則返回 TRUE
ISERR 如果值為除 #N/A 以外的任何錯誤值,則返回 TRUE
ISERROR 如果值為任何錯誤值,則返回 TRUE
ISEVEN 如果數字為偶數,則返回 TRUE
ISLOGICAL 如果值為邏輯值,則返回 TRUE
ISNA 如果值為錯誤值 #N/A,則返回 TRUE
ISNONTEXT 如果值不是文本,則返回 TRUE
ISNUMBER 如果值為數字,則返回 TRUE
ISODD 如果數字為奇數,則返回 TRUE
ISREF 如果值為引用值,則返回 TRUE
ISTEXT 如果值為文本,則返回 TRUE
N 返回轉換為數字的值
NA 返回錯誤值 #N/A
TYPE 返回表示值的數據類型的數字

邏輯函數
AND 如果其所有參數均為 TRUE,則返回 TRUE
FALSE 返回邏輯值 FALSE
IF 指定要執行的邏輯檢測
NOT 對其參數的邏輯求反
OR 如果任一參數為 TRUE,則返回 TRUE
TRUE 返回邏輯值 TRUE

查找和引用函數
ADDRESS 以文本形式將引用值返回到工作表的單個單元格
AREAS 返回引用中涉及的區域個數
CHOOSE 從值的列表中選擇值
COLUMN 返回引用的列號
COLUMNS 返回引用中包含的列數
GETPIVOTDATA 返回存儲在數據透視表中的數據
HLOOKUP 查找數組的首行,並返回指定單元格的值
HYPERLINK 創建快捷方式或跳轉,以打開存儲在網路伺服器、Intranet 或 Internet 上的文檔
INDEX 使用索引從引用或數組中選擇值
INDIRECT 返回由文本值指定的引用
LOOKUP 在向量或數組中查找值
MATCH 在引用或數組中查找值
OFFSET 從給定引用中返回引用偏移量
ROW 返回引用的行號
ROWS 返回引用中的行數
RTD 從支持 COM 自動化 (自動化:從其他應用程序或開發工具使用應用程序的對象的方法。以前稱為「OLE 自動化」,自動化是一種工業標准和組件對象模型 (COM) 功能。)的程序中檢索實時數據
TRANSPOSE 返回數組的轉置
VLOOKUP 在數組第一列中查找,然後在行之間移動以返回單元格的值

數學和三角函數
ABS 返回數字的絕對值
ACOS 返回數字的反餘弦值
ACOSH 返回數字的反雙曲餘弦值
ASIN 返回數字的反正弦值
ASINH 返回數字的反雙曲正弦值
ATAN 返回數字的反正切值
ATAN2 返回 X 和 Y 坐標的反正切值
ATANH 返回數字的反雙曲正切值
CEILING 將數字舍入為最接近的整數或最接近的指定基數的倍數
COMBIN 返回給定數目對象的組合數
COS 返回數字的餘弦值
COSH 返回數字的雙曲餘弦值
DEGREES 將弧度轉換為度
EVEN 將數字向上舍入到最接近的偶數
EXP 返回 e 的 n 次方
FACT 返回數字的階乘
FACTDOUBLE 返回數字的雙倍階乘
FLOOR 向絕對值減小的方向舍入數字
GCD 返回最大公約數
INT 將數字向下舍入到最接近的整數
LCM 返回最小公倍數
LN 返回數字的自然對數
LOG 返回數字的以指定底為底的對數
LOG10 返回數字的以 10 為底的對數
MDETERM 返回數組的矩陣行列式的值
MINVERSE 返回數組的逆矩陣
MMULT 返回兩個數組的矩陣乘積
MOD 返回除法的余數
MROUND 返回一個舍入到所需倍數的數字
MULTINOMIAL 返回一組數字的多項式
ODD 將數字向上舍入為最接近的奇數
PI 返回 pi 的值
POWER 返回數的乘冪
PRODUCT 將其參數相乘
QUOTIENT 返回除法的整數部分
RADIANS 將度轉換為弧度
RAND 返回 0 和 1 之間的一個隨機數
RANDBETWEEN 返回位於兩個指定數之間的一個隨機數
ROMAN 將阿拉伯數字轉換為文本式羅馬數
ROUND 將數字按指定位數舍入
ROUNDDOWN 向絕對值減小的方向舍入數字
ROUNDUP 向絕對值增大的方向舍入數字
SERIESSUM 返回基於公式的冪級數的和
SIGN 返回數字的符號
SIN 返回給定角度的正弦值
SINH 返回數字的雙曲正弦值
SQRT 返回正平方根
SQRTPI 返回某數與 pi 的乘積的平方根
小計 返回列表或資料庫中的分類匯總
SUM 求參數的和
SUMIF 按給定條件對若干單元格求和
SUMIFS 在區域中添加滿足多個條件的單元格
SUMPRODUCT 返回對應的數組元素的乘積和
SUMSQ 返回參數的平方和
SUMX2MY2 返回兩數組中對應值平方差之和
SUMX2PY2 返回兩數組中對應值的平方和之和
SUMXMY2 返回兩個數組中對應值差的平方和
TAN 返回數字的正切值
TANH 返回數字的雙曲正切值
TRUNC 將數字截尾取整

統計函數
AVEDEV 返回數據點與它們的平均值的絕對偏差平均值
AVERAGE 返回其參數的平均值
AVERAGEA 返回其參數的平均值,包括數字、文本和邏輯值
AVERAGEIF 返回區域中滿足給定條件的所有單元格的平均值(算術平均值)
AVERAGEIFS 返回滿足多個條件的所有單元格的平均值(算術平均值)。
BETADIST 返回 Beta 累積分布函數
BETAINV 返回指定 Beta 分布的累積分布函數的反函數
BINOMDIST 返回一元二項式分布的概率值
CHIDIST 返回 χ2 分布的單尾概率
CHIINV 返回 γ2 分布的單尾概率的反函數
CHITEST 返回獨立性檢驗值
CONFIDENCE 返回總體平均值的置信區間
CORREL 返回兩個數據集之間的相關系數
COUNT 計算參數列表中數字的個數
COUNTA 計算參數列表中值的個數
COUNTBLANK 計算區域內空白單元格的數量
COUNTIF 計算區域內非空單元格的數量
COVAR 返回協方差,成對偏差乘積的平均值
CRITBINOM 返回使累積二項式分布小於或等於臨界值的最小值
DEVSQ 返回偏差的平方和
EXPONDIST 返回指數分布
FDIST 返回 F 概率分布
FINV 返回 F 概率分布的反函數值
FISHER 返回 Fisher 變換值
FISHERINV 返回 Fisher 變換的反函數值
FORECAST 返回沿線性趨勢的值
FREQUENCY 以垂直數組的形式返回頻率分布
FTEST 返回 F 檢驗的結果
GAMMADIST 返回 γ 分布
GAMMAINV 返回 γ 累積分布函數的反函數
GAMMALN 返回 γ 函數的自然對數,Γ(x)
GEOMEAN 返回幾何平均值
GROWTH 返回沿指數趨勢的值
HARMEAN 返回調和平均值
HYPGEOMDIST 返回超幾何分布
INTERCEPT 返回線性回歸線的截距
KURT 返回數據集的峰值
LARGE 返回數據集中第 k 個最大值
LINEST 返回線性趨勢的參數
LOGEST 返回指數趨勢的參數
LOGINV 返回對數分布函數的反函數
LOGNORMDIST 返回對數累積分布函數
MAX 返回參數列表中的最大值
MAXA 返回參數列表中的最大值,包括數字、文本和邏輯值
MEDIAN 返回給定數值集合的中值
MIN 返回參數列表中的最小值
MINA 返回參數列表中的最小值,包括數字、文本和邏輯值
MODE 返回在數據集內出現次數最多的值
NEGBINOMDIST 返回負二項式分布
NORMDIST 返回正態累積分布
NORMINV 返回標准正態累積分布的反函數
NORMSDIST 返回標准正態累積分布
NORMSINV 返回標准正態累積分布函數的反函數
PEARSON 返回 Pearson 乘積矩相關系數
PERCENTILE 返回區域中數值的第 K 個百分點的值
PERCENTRANK 返回數據集中值的百分比排位
PERMUT 返回給定數目對象的排列數
POISSON 返回泊松分布
PROB 返回區域中的數值落在指定區間內的概率
QUARTILE 返回一列數字的數字排位
RANK 返回一列數字的數字排位
RSQ 返回 Pearson 乘積矩相關系數的平方
SKEW 返回分布的不對稱度
SLOPE 返回線性回歸線的斜率
SMALL 返回數據集中的第 K 個最小值
STANDARDIZE 返回正態化數值
STDEV 基於樣本估算標准偏差
STDEVA 基於樣本(包括數字、文本和邏輯值)估算標准偏差
STDEVP 基於整個樣本總體計算標准偏差
STDEVPA 基於總體(包括數字、文本和邏輯值)計算標准偏差
STEYX 返回通過線性回歸法預測每個 x 的 y 值時所產生的標准誤差
TDIST 返回學生的 t 分布
TINV 返回學生的 t 分布的反函數
TREND 返回沿線性趨勢的值
TRIMMEAN 返回數據集的內部平均值
TTEST 返回與學生的 t 檢驗相關的概率
VAR 基於樣本估算方差
VARA 基於樣本(包括數字、文本和邏輯值)估算方差
VARP 計算基於樣本總體的方差
VARPA 計算基於總體(包括數字、文本和邏輯值)的標准偏差
WEIBULL 返回 Weibull 分布
ZTEST 返回 z 檢驗的單尾概率值

文本函數
ASC 將字元串中的全形(雙位元組)英文字母或片假名更改為半形(單位元組)字元
BAHTTEXT 使用 ß(泰銖)貨幣格式將數字轉換為文本
CHAR 返回由代碼數字指定的字元
CLEAN 刪除文本中所有非列印字元
CODE 返迴文本字元串中第一個字元的數字代碼
CONCATENATE 將幾個文本項合並為一個文本項
DOLLAR 使用 $(美元)貨幣格式將數字轉換為文本
EXACT 檢查兩個文本值是否相同
FIND、FINDB 在一個文本值中查找另一個文本值(區分大小寫)
FIXED 將數字格式設置為具有固定小數位數的文本
JIS 將字元串中的半形(單位元組)英文字母或片假名更改為全形(雙位元組)字元
LEFT、LEFTB 返迴文本值中最左邊的字元
LEN、LENB 返迴文本字元串中的字元個數
LOWER 將文本轉換為小寫
MID、MIDB 從文本字元串中的指定位置起返回特定個數的字元
PHONETIC 提取文本字元串中的拼音(漢字注音)字元
PROPER 將文本值的每個字的首字母大寫
REPLACE、REPLACEB 替換文本中的字元
REPT 按給定次數重復文本
RIGHT、RIGHTB 返迴文本值中最右邊的字元
SEARCH、SEARCHB 在一個文本值中查找另一個文本值(不區分大小寫)
SUBSTITUTE 在文本字元串中用新文本替換舊文本
T 將參數轉換為文本
TEXT 設置數字格式並將其轉換為文本
TRIM 刪除文本中的空格
UPPER 將文本轉換為大寫形式
VALUE 將文本參數轉換為數字