[學習筆記] Oracle字元串函數、日期函數、數值函數、轉換函數、聚合函數

来源:https://www.cnblogs.com/danhuang/archive/2020/03/15/12498596.html
-Advertisement-
Play Games

函數 單行函數:對一行數據進行操作的函數,如字元串函數、數值函數、轉換函數、日期函數等。 聚合函數:同時對多行數據進行操作,如求和函數等。 字元串函數 | 函數 | 說明 | | | | | ASCII(X) | 求字元X的ASCII碼 | | CHR(X) | 求ASCII碼對應的字元 | | L ...


函數

  • 單行函數:對一行數據進行操作的函數,如字元串函數、數值函數、轉換函數、日期函數等。
  • 聚合函數:同時對多行數據進行操作,如求和函數等。

字元串函數

函數 說明
ASCII(X) 求字元X的ASCII碼
CHR(X) 求ASCII碼對應的字元
LENGTH(X) 求字元串X的字元長度
CONCATA(X,Y) 連接X和Y兩個字元串
INSTR(X,Y[,START]) 查找在字元串X中字元串Y的位置,可以指定從Start位置開始搜索,預設從頭開始
LOWER(X) 把字元串中大寫字母轉換為小寫
UPPER(X) 把字元串中小寫字母轉換為大寫
INITCAP(X) 把字元串中所有單詞首字母轉換為大寫,其餘小寫
LTRIM(X[,Y]) 去掉字元串X左邊的Y字元串,Y不填時,預設的是字元串X左邊去空格
RTRIM(X[,Y]) 去掉字元串X右邊的Y字元串,Y不填時,預設的是字元串X右邊去空格
TRIM(X[,Y]) 去掉字元串X兩邊的Y字元串,Y不填時,預設的是字元串X左右去空格
REPLACE(X,old,new) 將字元串中的old字元替換為new字元
SUBSTR(X,start[,length]) 截取字元串X,從start位置開始截取長度為length的字元串,length不填預設為截取到字元串X末尾
RPAD(X,length[,Y]) 對字元串X進行右補字元Y使字元串長度達到length長度
LPAD(X,length[,Y]) 對字元串X進行左補字元Y使字元串長度達到length長度

日期函數

函數 說明
sysdate() 系統的當前時間
systimestamp() 系統的當前時間,包含時區信息,精確到微秒
dbtimezone() 返回資料庫時區
ADD_MONTHS(r,n) 返回在指定日期r上加上月份n後的日期,n可以為負數
LAST_DAY(r) 返回指定r日期的當前月份的最後一天的日期
NEXT_DAY(r,c) 返回指定r日期後的星期幾c對應的日期
EXTRACT(time) 返回指定time時間當中的年月日、時分秒等特定部分
MONTHS_BETWEEN(r1,r2) 返回兩個日期間的月份數,結果是正數、負數、小數
ROUND(r[,f]) 將日期r按f的格式進行四捨五入
TRUNC(r[,f]) 將日期r按f的格式進行截取
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
select systimestamp from dual;
select dbtimezone from dual;

-- 結果為 2018-11-30,2018-10-31
select 
    to_char(add_months(to_date('2018-10-31','yyyy-mm-dd'),1),'yyyy-mm-dd'), 
    to_char(add_months(to_date('2018-09-30','yyyy-mm-dd'),1),'yyyy-mm-dd')
from dual;

select last_day(sysdate) from dual;

select next_day(to_date('2018-11-12','yyyy-mm-dd'),'星期四') from dual;

select extract(year from timestamp '2018-11-12 15:36:01') as year,
       extract(month from timestamp '2018-11-12 15:36:01') as month,
       extract(day from timestamp '2018-11-12 15:36:01') as day,  
       extract(minute from timestamp '2018-11-12 15:36:01') as minute,
       extract(second from timestamp '2018-11-12 15:36:01') as second
from dual;

select months_between(to_date('2018-11-12', 'yyyy-mm-dd'),
                      to_date('2017-11-12', 'yyyy-mm-dd')) as zs, --整數
       months_between(to_date('2018-11-12', 'yyyy-mm-dd'),
                      to_date('2017-10-11', 'yyyy-mm-dd')) as xs, --小數
       months_between(to_date('2017-11-12', 'yyyy-mm-dd'),
                      to_date('2018-10-12', 'yyyy-mm-dd')) as fs --負數
from dual;

select sysdate, --當前時間
       round(sysdate, 'yyyy') as year, --按年
       round(sysdate, 'mm') as month, --按月
       round(sysdate, 'dd') as day, --按天
       round(sysdate) as mr_day, --預設不填按天
       round(sysdate, 'hh24') as hour --按小時
from dual;

select sysdate, --當前時間
       trunc(sysdate, 'yyyy') as year, --按年
       trunc(sysdate, 'mm') as month, --按月
       trunc(sysdate, 'dd') as day, --按天
       trunc(sysdate) as mr_day, --預設不填按天
       trunc(sysdate, 'hh24') as hour --按小時
from dual;

數值函數

函數 解釋
ABS(X) 求數值X的絕對值
COS(X) 求數值X的餘弦
ACOS(X) 求數值X的反餘弦
CEIL(X) 向上取整
FLOOR(X) 向下取整
log(x,y) 求x為底y的對數
mod(x,y) 求x除以y的餘數
power(x,y) 求x的y次冪
sqrt(x) 求x的平方根
round(x[,y]) 求數值x在y位進行四捨五入。y預設為0,可以為負數
trunc(x[,y]) 求數值x在y位進行直接截取。y預設為0,可以為負數

轉換函數

函數 解釋
asciistr(x) 把字元串轉換為資料庫字元集對應的ASCII值
bin_to_num(x1[x2...]) 二進位數值轉換為十進位數值
cast(x as type) 把x轉換為type類型的數據
convert(x,d_chset[,r_chset]) 對字元串x按原字元集r_chset轉換為目標字元集d_chset
to_char(x[,f]) 把字元串或時間類型x按格式f轉換為字元串
to_date(x[,f]) 把字元串x按照格式f轉換為時間類型
to_number(x[,f]) 把字元串x按照格式f轉換為數值類型

其中數值的格式f可以參考下表:

參數 示例 說明
9 999 指定位置返回數字
. 99.9 指定小數點的位置
99,9 指定位置返回一個逗號
$ $99.9 指定開頭返回一個美元符號
EEEE 9.99EEEE 指定科學計數法

聚合函數

函數 解釋
AVG([distinct ] expr) 求列或列組成的表達式expr的平均值
count(*|[distinct]expr) 計算查詢結果的條數或行數
MAX([distinct] expr) 指定列或列組成的表達式expr中的最大值
MIN([distinct] expr) 指定列或列組成的表達式expr中的最小值
SUM([distinct] expr) 對指定列或列組成的表達式expr進行求和
select classno, avg(t.age) from stuinfo t where t.age < 30 group by t.classno;

select classno, sum(age), count(*), sum(age) / count(*), avg(age) from stuinfo t where t.age < 30 group by t.classno;

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • turtle庫的學習筆記(python) turtle(海龜)是Python重要的標準庫之一,它能夠進行基本的圖形繪製。turtle圖形繪製的概念誕生於1969年,成功應用於LOGO編程語言。turtle庫繪製圖形有一個基本框架:一個小海龜在坐標系中爬行,其爬行軌跡形成了繪製圖形。剛開始繪製時,小海 ...
  • 原文鏈接: "https://xiaoheidiannao.com/articles/Vim For Chrome.html" "Chrome瀏覽器" 有很多強大的擴展程式,其中我最喜歡的就是Vimium,其他的擴展程式都可以不安裝,但就是這個一定要安裝,用過以後你就會發現你已經離不開它了! Vim ...
  • 背景 最近公司系統還原用戶時偶爾會出現部分用戶信息未還原成功的問題,最為開發人員,最頭疼的不是代碼存在bug,而是測試發現了bug,但一旦我去重現,它就不見了。Are you kidding me? 經過漫長的溝通與嘗試,終於發現了端倪,這個問題只有在多人同時操作修改同一用戶信息時才會出現。 哦,那 ...
  • 介紹MySQL Integer類型的幾種分類,以及INT(11)中11數字表達的意思 ...
  • MySQL可以運行在不同的模式下,而且可以在不同的場景下運行不同的模式,這主要取決於系統變數 sql_mode 的值。本文主要介紹一下這個值的查看與設置,主要在Mac系統下。 對於每個模式的意義和作用,網上很容易找到,本文不做介紹。 按作用區域和時間可分為3個級別,分別是會話級別,全局級別,配置(永 ...
  • 在業界廣泛流傳著一句話:數據和特征決定了機器學習的上限,而模型和演算法只是逼近這個上限而已。 由此可見,數據和特征是多麼的重要,而在數據大多數場景下,數據已經就緒,不同人對於同樣的數據處理得到的特征卻千差萬別,最終得到的建模效果也是高低立現。從數據到特征這就要從特征工程說起了... ...
  • 我的表結構 student_info | id |name |profession|score| | | | | | |id|姓名|分數|專業| 按分數段統計 400到500人數,300到400人數 按分數段和專業統計 400到500人數,300到400人數 sql動態拼接生成 輸出sql ...
  • 現在有兩張表,第一張表有學生姓名,語文,數學,英語成績,數據量46萬。第二張表有學生姓名,物理,化學,政治成績,數據量10萬。 1. 找出既參加了table1,也參加了table2的考試的學生的數學和物理成績: SELECT achievement_1.name, achievement_1.mat ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...