统一SQL-支持cast函数

统一SQL介绍

https://www.light-pg.com/docs/LTSQL/current/index.html

源和目标

源数据库:Oracle

目标数据库:Postgresql,TDSQL-MySQL,达梦8,LightDB-Oracle

操作目标


在Oracle中,cast函数允许将一种内建数据类型转换成另一种内建类型。当前统一SQL支持红框语法分支到目标数据库的转换。

在Oracle中,cast内建类型转换列表,本文针对cast(expr as number)说明经过统一SQL转换到目标库中与之适配的数据类型。

统一SQL转换

通过统一SQL到目标库Postgresql,TDSQL-MySQL,达梦8,LightDB-Oracle转换结果如下:

(关于数据类型number/decimal/dec/numeric还可参考文章:https://blog.csdn.net/Richar1/article/details/137876283 )

cast(x as target_type)测试Oracle-SQL2pg-expect2tdmysql-expect2dm-expect2ltora-expect
numberselect CAST(col_float_binary AS NUMBER) AS to_nu FROM topg_function_cast_table WHERE id = 1;decimaldecimalnumbernumber
number(*)select CAST(col_float_binary AS NUMBER(*)) AS to_nu FROM topg_function_cast_table WHERE id = 1;decimaldecimalnumbernumber
number(*,0)select CAST(col_float_binary AS NUMBER(*,0)) AS to_nu FROM topg_function_cast_table WHERE id = 1;decimal(38,0)decimal(38,0)number(38,0)number(38,0)
number(*,s)select CAST(col_float_binary AS NUMBER(*,2)) AS to_nu FROM topg_function_cast_table WHERE id = 1;decimal(38,2)decimal(38,2)number(38,2)number(38,2)
number(4)/number(4,0)select CAST(col_float_binary AS NUMBER(4)) AS to_nu FROM topg_function_cast_table WHERE id = 1;decimal(4)decimal(4)number(4)number(4)
number(9)/number(9,0)select CAST(col_float_binary AS NUMBER(9)) AS to_nu FROM topg_function_cast_table WHERE id = 1;decimal(9)decimal(9)number(9)number(9)
number(18)/number(18,0)select CAST(col_float_binary AS NUMBER(18)) AS to_nu FROM topg_function_cast_table WHERE id = 1;decimal(18)decimal(18)number(18)number(18)
number(38)/number(38,0)select CAST(col_float_binary AS NUMBER(38)) AS to_nu FROM topg_function_cast_table WHERE id = 1;decimal(38)decimal(38)number(38)number(38)
number(p,s)select CAST(col_float_binary AS NUMBER(10,2)) AS to_nu FROM topg_function_cast_table WHERE id = 1;decimal(10,2)decimal(10,2)number(10,2)number(10,2)
decimalselect CAST(col_float_binary AS decimal) AS to_nu FROM topg_function_cast_table WHERE id = 1;decimal(38,0)decimal(38,0)decimal(38,0)decimal(38,0)
decimal(*)select CAST(col_float_binary AS decimal(*)) AS to_nu FROM topg_function_cast_table WHERE id = 1;decimal(38,0)decimal(38,0)decimal(38,0)decimal(38,0)
decimal(*,0)select CAST(col_float_binary AS decimal(*,0)) AS to_nu FROM topg_function_cast_table WHERE id = 1;decimal(38,0)decimal(38,0)decimal(38,0)decimal(38,0)
decimal(*,s)select CAST(col_float_binary AS decimal(*,2)) AS to_nu FROM topg_function_cast_table WHERE id = 1;decimal(38,2)decimal(38,2)decimal(38,2)decimal(38,2)
decimal(4)/decimal(4,0)select CAST(col_float_binary AS decimal(4)) AS to_nu FROM topg_function_cast_table WHERE id = 1;decimal(4)decimal(4)decimal(4)decimal(4)
decimal(9)/decimal(9,0)select CAST(col_float_binary AS decimal(9)) AS to_nu FROM topg_function_cast_table WHERE id = 1;decimal(9)decimal(9)decimal(9)decimal(9)
decimal(18)/decimal(18,0)select CAST(col_float_binary AS decimal(18)) AS to_nu FROM topg_function_cast_table WHERE id = 1;decimal(18)decimal(18)decimal(18)decimal(18)
decimal(38)/decimal(38,0)select CAST(col_float_binary AS decimal(38)) AS to_nu FROM topg_function_cast_table WHERE id = 1;decimal(38)decimal(38)decimal(38)decimal(38)
decimal(p,s)select CAST(col_float_binary AS decimal(10,2)) AS to_nu FROM topg_function_cast_table WHERE id = 1;decimal(10,2)decimal(10,2)decimal(10,2)decimal(10,2)
decselect CAST(col_float_binary AS dec) AS to_nu FROM topg_function_cast_table WHERE id = 1;dec(38,0)dec(38,0)dec(38,0)dec(38,0)
dec(*)select CAST(col_float_binary AS dec(*)) AS to_nu FROM topg_function_cast_table WHERE id = 1;dec(38,0)dec(38,0)dec(38,0)dec(38,0)
dec(*,0)select CAST(col_float_binary AS dec(*,0)) AS to_nu FROM topg_function_cast_table WHERE id = 1;dec(38,0)dec(38,0)dec(38,0)dec(38,0)
dec(*,s)select CAST(col_float_binary AS dec(*,2)) AS to_nu FROM topg_function_cast_table WHERE id = 1;dec(38,2)dec(38,2)dec(38,2)dec(38,2)
dec(4)/dec(4,0)select CAST(col_float_binary AS dec(4)) AS to_nu FROM topg_function_cast_table WHERE id = 1;dec(4)dec(4)dec(4)dec(4)
dec(9)/dec(9,0)select CAST(col_float_binary AS dec(9)) AS to_nu FROM topg_function_cast_table WHERE id = 1;dec(9)dec(9)dec(9)dec(9)
dec(18)/dec(18,0)select CAST(col_float_binary AS dec(18)) AS to_nu FROM topg_function_cast_table WHERE id = 1;dec(18)dec(18)dec(18)dec(18)
dec(38)/dec(38,0)select CAST(col_float_binary AS dec(38)) AS to_nu FROM topg_function_cast_table WHERE id = 1;dec(38)dec(38)dec(38)dec(38)
dec(p,s)select CAST(col_float_binary AS dec(10,2)) AS to_nu FROM topg_function_cast_table WHERE id = 1;dec(10,2)dec(10,2)dec(10,2)dec(10,2)
numericselect CAST(col_float_binary AS numeric) AS to_nu FROM topg_function_cast_table WHERE id = 1;numeric(38,0)decimal(38,0)numeric(38,0)numeric(38,0)
numeric(*)select CAST(col_float_binary AS numeric(*)) AS to_nu FROM topg_function_cast_table WHERE id = 1;numeric(38,0)decimal(38,0)numeric(38,0)numeric(38,0)
numeric(*,0)select CAST(col_float_binary AS numeric(*,0)) AS to_nu FROM topg_function_cast_table WHERE id = 1;numeric(38,0)decimal(38,0)numeric(38,0)numeric(38,0)
numeric(*,s)select CAST(col_float_binary AS numeric(*,2)) AS to_nu FROM topg_function_cast_table WHERE id = 1;numeric(38,2)decimal(38,2)numeric(38,2)numeric(38,2)
numeric(4)/numeric(4,0)select CAST(col_float_binary AS numeric(4)) AS to_nu FROM topg_function_cast_table WHERE id = 1;numeric(4)decimal(4)numeric(4)numeric(4)
numeric(9)/numeric(9,0)select CAST(col_float_binary AS numeric(9)) AS to_nu FROM topg_function_cast_table WHERE id = 1;numeric(9)decimal(9)numeric(9)numeric(9)
numeric(18)/numeric(18,0)select CAST(col_float_binary AS numeric(18)) AS to_nu FROM topg_function_cast_table WHERE id = 1;numeric(18)decimal(18)numeric(18)numeric(18)
numeric(38)/numeric(38,0)select CAST(col_float_binary AS numeric(38)) AS to_nu FROM topg_function_cast_table WHERE id = 1;numeric(38)decimal(38)numeric(38)numeric(38)
numeric(p,s)select CAST(col_float_binary AS numeric(10,2)) AS to_nu FROM topg_function_cast_table WHERE id = 1;numeric(10,2)decimal(10,2)numeric(10,2)numeric(10,2)

使用限制

可参考统一SQL官方手册中各个目标库下关于cast函数的章节

https://www.light-pg.com/docs/LTSQL/current/index.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/555775.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录-链表 | 142环形链表

代码随想录-链表 | 142环形链表 LeetCode 142-环形链表解题思路代码复杂度难点总结 LeetCode 142-环形链表 题目链接 题目描述 给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 如果链表中有某个节点&#x…

死磕GMSSL通信-C/C++系列(一)

死磕GMSSL通信-C/C++系列(一) 最近再做国密通信的项目开发,以为国密也就简单的集成一个库就可以完事了,没想到能有这么多坑。遂写下文章,避免重复踩坑。以下国密通信的坑有以下场景 1、使用GMSSL guanzhi/GmSSL进行通信 2、使用加密套件SM2-WITH-SMS4-SM3 使用心得 ​…

Java学习-详述main方法、可变参数、数组的工具类、二维数组

详述main方法 【1】main方法:程序的入口,在同一个类中,如果有多个方法,那么虚拟机就会识别main方法,从这个方法作为程序的入口 【2】main方法格式严格要求: public static void main(String[] args){} p…

【NOI-题解】1320. 时钟旋转1323. 扩建花圃问题1462. 小明的游泳时间1565. 成绩(score)1345. 玫瑰花圃

文章目录 一、前言二、问题问题:1320. 时钟旋转问题:1323. 扩建花圃问题问题:1462. 小明的游泳时间问题:1565. 成绩(score)问题:1345. 玫瑰花圃 三、感谢 一、前言 本章节主要对基本运算中整数…

Windows系统搭建Plex网站结合内网穿透实现公网访问本地影音文件

文章目录 1.前言2. Plex网站搭建2.1 Plex下载和安装2.2 Plex网页测试2.3 cpolar的安装和注册 3. 本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 1.前言 用手机或者平板电脑看视频,已经算是生活中稀松平常的场景了,特别是各…

奶酪——并查集,BFS,DFS(NOIP2017提高组)

目录 题目 思路 并查集 代码(java) BFS(DFS同理) 代码(C) 题目 思路 这个题目意思是有很多个球分布在一个三维空间内,如果这些球相切或者相交都可以互相到达,我们需要判断能否…

二、e2studio VS STM32CubeIDE之功能对比

目录 一、概述/目的 二、官网资料 2.1 stm32cubeide 2.2 e2studio 三、功能对比 二、e2studio VS STM32CubeIDE之功能对比 一、概述/目的 通过对比学习,更快速的掌握两款IDE 二、官网资料 2.1 stm32cubeide https://www.stmcu.com.cn/ecosystem/Cube/STM32C…

41、二叉树-二叉树的层序遍历

思路: 层序遍历就是从左到右依次遍历。这个时候就可以使用队列的方式。例如先把头节点入队,然后遍历开始,首先计算队列长度,第一层,长度为了,遍历一次,依次出队,头结点出队&#xff…

Codeforces Round 924 (Div. 2) ---- F. Digital Patterns ---- 题解

F. Digital Patterns: 题目描述: 思路解析: 要求在一个方块中,任意相邻的方块中他的透明度系数不能相同,这样的方块称为趣味性方块,问这样的方块有多少种。 那么我们可以相当,假设 a1 a2, 那…

iOS ------ Block的总结

前面看了Block的基本知识,和一些源码。但对于block怎么用的还不了解,代码中出现block会看不懂,现在来具体看一下Block的用法并做个总结。 1.Block是什么 block对象是一个C语言结构体,可以并入C和OC的代码中,Block本质…

每日OJ题_多源BFS①_力扣542. 01 矩阵(多源BFS解决最短路原理)

目录 多源BFS解决最短路算法原理 力扣542. 01 矩阵 解析代码 多源BFS解决最短路算法原理 什么是单源最短路 / 多源最短路? 之前的BFS解决最短路都是解决的单源最短路。 画图来说,单源最短路问题即为: 而对于多源最短路问题: 如何解决此…

微信小程序之点击事件

微信小程序中常用的点击事件主要是 tap,但除此之外还有其他的触摸类事件,用于不同的交互场景。以下是一些常见的点击和触摸相关的事件及其区别: 1、tap——最基本的点击事件,适用于一般的轻触交互,类似于 HTML 中的 c…

Pixverse:开启文生视频与图生视频新纪元

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

NPU流式输出-torch_npu和transformers框架-多线程Streamer-昇腾910B-EE1001

前情提要 torch_npu框架不支持多线程自动set_device 报错详情 直接使用transformers的TextIteratorStreamer进行流式推理,会报错 Exception in thread Thread-6: Traceback (most recent call last):File "/root/anaconda3/envs/AI/lib/python3.9/threadin…

Linux shell 脚本基础与部署SpringCloud实战

博主介绍:✌全网粉丝5W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验…

L2正则化——解释为什么可以减少模型的复杂度

L2正则化是一种用于机器学习模型的技术,旨在减少模型的复杂度,从而提高其泛化能力。在L2正则化中,通过添加一个惩罚项,模型的权重被迫保持较小的值,这有助于防止过拟合,即模型在训练数据上表现良好但在未见…

python学习笔记B-07:序列结构之列表--列表的常用函数和方法

以xx_函数名(列表名)的形式出现的是函数;以xx_列表名.xx_方法名的形式出现的是方法。 列表常用函数如下: len():计算列表元素数量 max():获取列表元素最大值 min():获取列表元素最小值 sum():计算列表中各元素之和 列表常用方法如…

【Java EE】文件操作

目录 1.认识文件 2.树型结构组织和目录 3.文件路径(Path) 4.其他知识 5.Java中操作文件 5.1File概述 5.1.1属性 5.1.2构造方法 5.1.3方法 5.2代码示例 1.认识文件 我们先来认识狭义的文件(file)。针对1硬盘这种持久化存…

HTML重要标签梳理学习

1、HTML文件的框架 使用VS Code编码时&#xff0c;输入!选中第一个&#xff01;就可以快速生成一个HTML文件框架。 2、标签 <hr> <!--下划线--> <br> <!--换行--> <strong>加粗</strong> &…

MySQL行级锁——技术深度+1

引言 本文是对MySQL行级锁的学习&#xff0c;MySQL一直停留在会用的阶段&#xff0c;需要弄清楚锁和事务的原理并DEBUG查看。 PS:本文涉及到的表结构均可从https://github.com/WeiXiao-Hyy/blog中获取&#xff0c;欢迎Star&#xff01; MySQL行级锁 行级锁&#xff08;Row-…