Mysql、Oracle、Sql Server、達夢之間sql的差異

1:分頁查詢

Sql Server:

<bind name="startRow" value="(page - 1) * limit + 1"/>
<bind name="endRow" value="page * limit"/>
SELECT *FROM (SELECT ROW_NUMBER() OVER (<if test="sortZd!= null and sortZd!= ''">ORDER BY ${sortZd}<if test="sort!= null and sort!= ''">${sort}</if></if><!-- 默認排序 --><if test="sortZd == null or sortZd == ''">ORDER BY jy.JYSJ</if>) AS RowNum,<!-- 具體的查詢sql -->
) AS PagedResults
WHERE RowNum BETWEEN #{startRow} AND #{endRow}

分頁Count查詢:

SELECT COUNT(*) AS total_count
FROM ( <!-- 具體的查詢sql -->
) subquery;

Oracle:

<bind name="startRow" value="(page - 1) * limit + 1"/>
<bind name="endRow" value="page * limit"/>
SELECT * FROM (SELECT inn.*, ROWNUM AS rn FROM (SELECT * FROM ( ) a<!-- 動態排序邏輯(if標簽實現) --><if test="sortZd != null and sortZd != ''">ORDER BY ${sortZd} <if test="sort != null and sort != ''">${sort}</if></if><!-- 默認排序 --><if test="(sortZd == null or sortZd == '') and sort == null">ORDER BY FYSJ DESC</if>) innWHERE ROWNUM &lt;= #{endRow})
WHERE rn &gt;= #{startRow}

分頁Count查詢:

SELECT COUNT(*) AS total_count
FROM ( ) subquery

達夢:

<bind name="startRow" value="(page - 1) * limit"/><bind name="endRow" value="limit"/>SELECT * FROM () a<if test="sortZd != null and sortZd != ''">ORDER BY ${sortZd}<if test="sort != null and sort != ''">${sort}</if></if><if test="sortZd == null or sortZd == ''">ORDER BY BATJ_XGRZ.xgsj DESC</if>
OFFSET #{startRow} ROWS FETCH FIRST #{endRow} ROWS ONLY

分頁Count查詢:

SELECT COUNT(*) AS total_count
FROM ( ) subquery

mysql:

SELECT * FROM table<br>ORDER BY col<br>LIMIT 10 OFFSET 10;

2:時間處理

功能OracleSQL Server達夢MySQL
日期格式化TO_CHAR(date, 'YYYY-MM-DD')CONVERT(VARCHAR, date, 23)TO_CHAR(date, 'YYYY-MM-DD')DATE_FORMAT(date, '%Y-%m-%d')
當前日期時間SYSDATEGETDATE()SYSDATENOW()
日期加減date + INTERVAL '1' DAYDATEADD(DAY, 1, date)date + INTERVAL '1' DAYdate + INTERVAL 1 DAY

Oracle:

BETWEEN TO_DATE(#{start}, 'YYYY-MM-DD') AND TO_DATE(#{end}, 'YYYY-MM-DD')TO_DATE(#{begDate}, 'YYYY-MM-DD')TO_DATE(#{endDate}, 'YYYY-MM-DD')TO_CHAR(DateColumn, 'YYYY-MM-DD') AS FormattedDate

Sql server:

CONVERT(VARCHAR(10), DateColumn, 23) AS FormattedDateCYRQ >= #{paramMap.begdate}AND CYRQ &lt; #{paramMap.plusDays}

達夢:

3:模糊查詢

sqlserver:

<if test="dto.keyword != null and dto.keyword != ''">AND (SRM1 LIKE #{dto.keyword} + '%'OR MDMM LIKE '%' + #{dto.keyword} + '%'OR MBZM10 LIKE #{dto.keyword} + '%')</if>

oracle:

<if test="dto.keyword != null and dto.keyword != ''">AND (SRM1 LIKE #{dto.keyword} || '%'OR MDMM LIKE '%' || #{dto.keyword} || '%'OR MBZM10 LIKE #{dto.keyword} || '%')</if>

3:函數和語法差異

功能OracleSQL Server達夢MySQL
空值處理NVL(col, default)ISNULL(col, default)NVL(col, default)IFNULL(col, default)
條件表達式DECODE(col, val1, res1, res2)CASE WHEN col=val1 THEN res1...DECODE()?或?CASECASE WHEN...
自增主鍵SEQUENCE + TRIGGERIDENTITY(1,1)IDENTITY?或?SEQUENCEAUTO_INCREMENT
注釋-- 單行?/?/* 多行 */同上同上同上

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/80393.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/80393.shtml
英文地址,請注明出處:http://en.pswp.cn/web/80393.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SQL Server 常用函數

一、字符串處理函數 1. CONCAT&#xff1a;拼接字符串 語法&#xff1a;CONCAT(string1, string2, ..., stringN) 實例&#xff1a; SELECT CONCAT(Hello, , World) AS Result; 輸出&#xff1a; Result ------------- Hello World 2. SUBSTRING&#xff1a;截取子字符串 …

【通用大模型】Serper API 詳解:搜索引擎數據獲取的核心工具

Serper API 詳解&#xff1a;搜索引擎數據獲取的核心工具 一、Serper API 的定義與核心功能二、技術架構與核心優勢2.1 技術實現原理2.2 對比傳統方案的突破性優勢 三、典型應用場景與代碼示例3.1 SEO 監控系統3.2 競品廣告分析 四、使用成本與配額策略五、開發者注意事項六、替…

ABP vNext 多租戶系統實現登錄頁自定義 Logo 的最佳實踐

&#x1f680; ABP vNext 多租戶系統實現登錄頁自定義 Logo 的最佳實踐 &#x1f9ed; 版本信息與運行環境 ABP Framework&#xff1a;v8.1.5.NET SDK&#xff1a;8.0數據庫&#xff1a;PostgreSQL&#xff08;支持 SQLServer、MySQL 等&#xff09;BLOB 存儲&#xff1a;本地…

FastDFS分布式文件系統架構學習(一)

FastDFS分布式文件系統架構學習 1. FastDFS簡介 FastDFS是一個開源的輕量級分布式文件系統&#xff0c;由淘寶資深架構師余慶設計并開發。它專為互聯網應用量身定制&#xff0c;特別適合以中小文件&#xff08;如圖片、文檔、音視頻等&#xff09;為載體的在線服務。FastDFS不…

基于單片機的防盜報警器設計與實現

標題:基于51單片機的防盜報警器設計 內容:1.摘要 本文圍繞基于51單片機的防盜報警器設計展開。背景在于現代社會安全需求不斷提高&#xff0c;傳統防盜方式存在諸多不足。目的是設計一款成本低、可靠性高且易于使用的防盜報警器。方法上&#xff0c;以51單片機為核心控制單元&…

IDE/IoT/搭建物聯網(LiteOS)集成開發環境,基于 LiteOS Studio + GCC + JLink

文章目錄 概述LiteOS Studio不推薦&#xff1f;安裝和使用手冊呢?HCIP實驗的源碼呢&#xff1f; 軟件和依賴安裝軟件下載軟件安裝插件安裝依賴工具-方案2依賴工具-方案1 工程配置打開或新建工程板卡配置組件配置編譯器配置-gcc工具鏈編譯器配置-Makefile腳本其他配置編譯完成 …

【高斯擬合最終篇】Levenberg-Marquardt(LM)算法

Levenberg-Marquardt(LM)算法是一種結合高斯-牛頓法和梯度下降法的優化方法,特別適合非線性最小二乘問題,如高斯函數擬合。它通過引入阻尼因子(damping factor)平衡高斯-牛頓法的快速收斂和梯度下降法的穩定性。以下是基于之前的 gaussian_fit.py,加入 LM 算法實現高斯擬…

信道編碼技術介紹

信息與通信系統中的編碼有4 種形式&#xff1a;信源編碼、信道編碼、密碼編碼和多址編碼。 其中信道編碼的作用是對信源經過壓縮后的數據加一定數量受到控制的冗余&#xff0c;使得數據在傳輸中或接收中發生的差錯可以被糾正或被發現&#xff0c;從而可以正確恢復出原始數據信息…

線性回歸策略

一種基于ATR(平均真實范圍)、線性回歸和布林帶的交易策略。以下是對該策略的全面總結和分析: 交易邏輯思路 1. 過濾條件: - 集合競價過濾:在每個交易日的開盤階段,過濾掉集合競價產生的異常數據。 - 價格異常過濾:排除當天開盤價與最高價或最低價相同的情況,這…

WordPress Relevanssi插件時間型SQL注入漏洞(CVE-2025-4396)

免責聲明 本文檔所述漏洞詳情及復現方法僅限用于合法授權的安全研究和學術教育用途。任何個人或組織不得利用本文內容從事未經許可的滲透測試、網絡攻擊或其他違法行為。使用者應確保其行為符合相關法律法規,并取得目標系統的明確授權。 對于因不當使用本文信息而造成的任何直…

支持selenium的chrome driver更新到136.0.7103.94

最近chrome釋放新版本&#xff1a;136.0.7103.94 如果運行selenium自動化測試出現以下問題&#xff0c;是需要升級chromedriver才可以解決的。 selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only su…

附加:TCP如何保障數據傳輸

附加&#xff1a;TCP如何保障數據傳輸 LS-NET-012-TCP的交互過程詳解 TCP 如何保障數據傳輸 TCP&#xff08;Transmission Control Protocol&#xff0c;傳輸控制協議&#xff09;是互聯網核心協議之一&#xff0c;負責在IP網絡上提供可靠的、面向連接的數據傳輸服務。它位于T…

Unity 批量將圖片從默認類型改為Sprite類型

先將該腳本放到Editor目錄下 如何使用:選中目錄,然后點擊Tool里面的批量修改按鈕 using System; using UnityEngine; using UnityEditor; using System.IO; using System.Linq;/// <summary> /// 此工具可以批量將圖片類型修改為精靈 /// </summary> public clas…

2025認證杯數學建模C題思路+代碼+模型:化工廠生產流程的預測和控制

2025認證杯數學建模C題思路代碼模型&#xff0c;詳細內容見文末名片 在化工廠的生產流程中&#xff0c;往往涉及到多個反應釜、管道和儲罐等設備。在 流水線上也有每個位置的溫度、壓力、流量等諸多參數。只有參數處于正常范 圍時&#xff0c;最終的產物才是合格的。這些參數…

Rust 學習筆記:關于 HashMap 的練習題

Rust 學習筆記&#xff1a;關于 HashMap 的練習題 Rust 學習筆記&#xff1a;關于 HashMap 的練習題以下代碼能否通過編譯&#xff1f;若能&#xff0c;輸出是&#xff1f;以下代碼能否通過編譯&#xff1f;若能&#xff0c;輸出是&#xff1f; Rust 學習筆記&#xff1a;關于 …

Vue-事件修飾符

事件修飾符 prevent &#xff08;阻止默認事件&#xff09; 超鏈接 點擊事件 代碼 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>事件修飾符</title><!-- 引入Vue --><script …

LeetCode --- 156雙周賽

題目列表 3541. 找到頻率最高的元音和輔音 3542. 將所有元素變為 0 的最少操作次數 3543. K 條邊路徑的最大邊權和 3544. 子樹反轉和 一、找到頻率最高的元音和輔音 分別統計元音和輔音的出現次數最大值&#xff0c;然后相加即可&#xff0c;代碼如下 // C class Solution {…

告別 pip:使用 uv 加速你的 Python 包管理

使用 uv:更快的 Python 包管理工具 隨著 Python 生態的演進,包管理工具也在不斷升級迭代。uv 是 Astral(同樣維護 ruff 的團隊)推出的下一代 Python 包與項目管理器,主打 單一可執行文件、極致性能,可在多數場景下取代 pip、pip-tools、pipx 與 virtualenv 等傳統工具,…

MATLAB學習筆記(七):MATLAB建模城市的雨季防洪排污的問題

使用 MATLAB 對城市雨季防洪排污問題進行建模與仿真&#xff0c;需要結合數學模型、工程經驗和 MATLAB 的數值計算、數據可視化及優化工具。以下是詳細的步驟指南&#xff0c;包含實際案例和代碼示例&#xff1a; 一、問題分析與建模框架 1. 問題拆解 ? 核心目標&#xff1a; …

以項目的方式學QT開發C++(二)——超詳細講解(120000多字詳細講解,涵蓋qt大量知識)逐步更新!

API 描述 函數原型 參數說明 push_back() 在 list 尾部 添加一個元素 void push_back(const T& value); value &#xff1a;要添 加到尾部的元 素 這個示例演示了如何創建 std::list 容器&#xff0c;并對其進行插入、刪除和迭代操作。在實際應用中&am…