统一SQL-支持cast函数

news2024/12/28 20:41:02

统一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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CSS:filter(滤镜)属性

用途 可以用于img标签,div标签等 图像,背景,边框的调整 常用属性 1. 灰度 grayscale(),默认是0,100%就是黑白 2. blux 给图像设置高斯模糊的程度,radius值设定高斯模糊的程序,表示像素点…

android studio gradle 下载不下来的问题

有时候由于网络问题,会发现 android-studio 或 idea 下载不懂 gradle,可以修改 gradle-wrapper.properties 配置文件中的 distributionUrl 选项来解决这个问题。 distributionUrlhttps\://mirrors.cloud.tencent.com/gradle/gradle-5.1.1-all.zip 这个选…

遥感图像分割 | 基于一种类似UNet的Transformer算法实现遥感城市场景图像的语义分割_适用于卫星图像+航空图像+无人机图像

项目应用场景 面向遥感城市场景图像语义分割场景,项目采用类似 UNet 的 Transformer 深度学习算法来实现,项目适用于卫星图像、航空图像、无人机图像等。 项目效果 项目细节 > 具体参见项目 README.md (1) 安装依赖 conda create -n airs python3.8…

常用的7个免费ChatGPT网站

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

OpenCV从入门到精通实战(六)——多目标追踪

基于原生的追踪 使用OpenCV库实现基于视频的对象追踪。通过以下步骤和Python代码,您将能够选择不同的追踪器,并对视频中的对象进行实时追踪。 步骤 1: 导入必要的库 首先,我们需要导入一些必要的Python库,包括argparse、time、…

Debian12 中重新安装MSSQL 并指定服务器、数据库、数据表字段的字符排序规则和默认语言等参数

在 Linux 上配置 SQL Server 设置 - SQL Server | Microsoft Learn 零、查看sql server 服务器支持的字符排序规则 SELECT Name from sys.fn_helpcollations() where name Like Chinese% go------ Chinese_PRC_CI_AI Chinese_PRC_CI_AI_WS Chinese_PRC_CI_AI_KS Chinese_PRC_…

读所罗门的密码笔记21_读后总结与感想兼导读

1. 基本信息 所罗门的密码:AI时代的价值、权力与信任 Solomons Code 奥拉夫格罗思 马克尼兹伯格 著 中信出版社,2022年5月出版 1.1. 读薄率 书籍总字数257千字,笔记总字数37780字。 读薄率37780257000≈14.7% 1.2. 读厚方向 千脑智能 脑机穿越 …

政安晨:【Keras机器学习示例演绎】(一)—— 利用类 U-Net 架构进行图像分割

目录 下载数据 准备输入图像的路径和目标分割掩码 一幅输入图像和相应的分割掩码是什么样子的? 准备数据集,以加载和矢量化成批数据 准备 U-Net Xception 风格模型 预留验证分割 训练模型 可视化预测 政安晨的个人主页:政安晨 欢迎 &…

SpringBoot整合零一万物模型API进行多轮对话

前期准备工作 零一万物官网:https://www.01.ai/cn 零一万物大模型开放平台:https://platform.lingyiwanwu.com/ 选择理由 性价比高很高,模型整体不错,新用户送60元,非常适合研究学习。 开发 只提供了http接口和p…

OpenHarmony UI动画-lottie

简介 lottie是一个适用于OpenHarmony的动画库,它可以解析Adobe After Effects软件通过Bodymovin插件导出的json格式的动画,并在移动设备上进行本地渲染。 下载安裝 ohpm install ohos/lottieOpenHarmony ohpm 环境配置等更多内容,请参考如何…

机器视觉【1】-机械臂视觉

文章目录 Eye-to-HandEye-in-Hand基于Eye-in-Hand型机械臂单目视觉定位单目相机标定针孔相机模型畸变标定方法机械臂手眼标定手眼标定求解图像预处理图像灰度化与二值化图像滤波图像特征匹配机械臂单目视觉定位目标物体图像深度信息目标物体中心定位参考文献根据机械臂与相机所…

python来实现nmap扫描

今天分享一个用python实现nmap扫描的方法,以下是实现步骤 代码如下: import subprocessmissing_ips {166.139.144.163, 31.47.8.35, 58.242.86.191, 212.178.135.62, 103.1.35.114} port "7" for missing_ip in missing_ips:# 构造nmap命令…

数学建模--蒙特卡罗法MATLAB代码保姆式解析

1.简单介绍 2.思想的实际运用 我们利用蒙特卡罗法的思想求解圆周率π的值,这里求得的肯定是近似值,我们是通过大量的模拟实验,利用概率求解的,但是这个值和我们的精确值之间还是有一定的误差的; 我们的思想就是在半径为…

智慧化赋能园区新未来:探讨智慧园区如何以科技创新为引擎,推动产业转型升级

随着科技的飞速发展,智慧化已成为推动园区产业升级和转型的重要引擎。智慧园区,以其高效、便捷、智能的特性,正逐步改变传统的产业园区模式,为产业发展注入新的活力。本文旨在探讨智慧园区如何以科技创新为引擎,推动产…

web自动化系列-selenium的3种等待方式(十一)

在ui自动化测试中,几乎出现问题最多的情况就是定位不到元素 ,当你的自动化在运行过程中 ,突然发现报错走不下去了 。很大概率就是因为找不到元素 ,而找不到元素的一个主要原因就是页面加载慢 ,代码运行速度快导致 。 …

vivado 使用 JTAG-to-AXI Master 调试核进行硬件系统通信

使用 JTAG-to-AXI Master 调试核进行硬件系统通信 JTAG-to-AXI Master 调试核为可自定义核 , 可在运行时生成 AXI 传输事务并驱动 FPGA 内部的 AXI 信号。该核支持所 有存储器映射型 AXI 接口和 AXI4-Lite 接口 , 并且可支持位宽为 32 或 64 …

Ubuntu 传输文件

scp [选项] 源文件 目标路径 以下是一些常用的 scp 命令选项: -r:递归复制目录和子目录。 -P:指定远程 SSH 服务器的端口号。 -i:指定用于身份验证的私钥文件。 -p:保留源文件的时间戳、权限和所有者。 -v&#x…

嵌入式面试-回答I2C

说明: 此文章是在阅读了一些列面试相关资料之后对于一些常见问题的整理,主要针对的是嵌入式软件面试中涉及到的问答,努力精准的抓住重点进行描述。若有不足非常欢迎指出,感谢!在总结过程中有些答案没标记参考来源&…

线性代数---行列式的性质

1. 行列式的行与列(按原顺序)互换

RabbitMQ学习记录

核心概念 Brocker:消息队列服务器实体 Exchange(消息交换机):它指定消息按什么规则,路由到哪个队列。 Queue(消息队列载体):每个消息都会被投入到一个或多个队列。 Binding(绑定):它的作用就是把exchange和queue按…