這篇文章主要介紹“怎么用json實現SQL Server分頁”,在日常操作中,相信很多人在怎么用json實現SQL Server分頁問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么用json實現SQL Server分頁”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
1。SQL Server 版本2012+ 新增SQL分頁的寫法
最近封裝一個輕量級的ORM用到了分頁,以前只知道使用Row_Number函數,現在發現sqlserver 新增的 {orderBy} offset {start} rows fetch next {pageSize} rows only 也挺好用的。
簡單回顧下 sqlserver 各個版本支持分頁的方式。
SQL Server 2005 支持 top not in 寫法
SQL Server 2008 支持 Row_Number()寫法
SQL Server 2012 支持 OFFSET、FETCH NEXT 寫法
這也就是為什么Efcore連接SQL Server 2012之前的版本進行分頁操作會報異?!?em>SqlException: 'OFFSET' 附近有語法錯誤。在 FETCH 語句中選項 NEXT 的用法無效。”的原因。
如果要使用2008進行分頁需要特殊的配置options.UseRowNumberForPaging();
OFFSET、FETCH NEXT 寫法 取出頁碼(2)和一頁顯示的條數(20)的用戶數據語句如下
select * from Sys_UserInfo Order by SysNo asc offset 20 rows fetch next 20 rows only;
offset 開始的行或者跳過的行 fetch next 取出排序后的多少行,是不是比之前的寫法方便多了。
2。SQL Server 版本2016+ 新增JSON功能
最近有個需求,用到存儲json的又不想使用其他文檔數據庫,剛好發現SQL Server新增了json功能。來看下簡單的驗證、檢索、編輯功能。
定義json
[{
"Code": "UserName",
"ShowLable": "用戶名",
"ShowText": ".NET",
"IsShow": 1,
"ShowSort": 1
}, {
"Code": "RealName",
"ShowLable": "真實名稱",
"ShowText": "知音",
"IsShow": 1,
"ShowSort": 2
}]
驗證是否是json
SELECT Id,QueryJson FROM AA_QueryJson where ISJSON(QueryJson)>0
返回:
檢索json
SELECT TOP (1000) [Id]
,JSON_VALUE(QueryJson,'$[0].ShowLable') as ShowLable
,JSON_VALUE(QueryJson,'$[0].ShowText') as ShowText
FROM [AaCenter].[dbo].[AA_QueryJson] where ISJSON(QueryJson)>0
返回:
修改json
select JSON_MODIFY(QueryJson,'$[0].ShowText', 'dotNET') from [AA_QueryJson];
返回:
當然有很多高級的功能如OPENJSON 行集函數可將 JSON 文本轉換為一組行和列、嵌套操作等等。
到此,關于“怎么用json實現SQL Server分頁”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。