行构造函数有什么用?

2023-12-26

在 PostgreSQL 中,什么是ROW()函数用于?

具体有什么区别

SELECT ROW(t.f1, t.f2, 42) FROM t;

where f1属于类型int, f2属于类型text

and

CREATE TYPE myrowtype AS (f1 int, f2 text, f3 numeric);

你混淆了抽象层次。正如其他答案已经指出的那样,CREATE TYPE只在系统中注册一个(复合/行)类型。虽然一个ROW构造函数实际上返回一行。

使用创建的行类型ROW构造函数不保留列名称,当您尝试将行转换为 JSON 时,这一点会变得很明显。

身处其中的同时,ROW只是一个干扰词大多数时候。手册: https://www.postgresql.org/docs/current/sql-expressions.html#SQL-SYNTAX-ROW-CONSTRUCTORS

关键词ROW当列表中有多个表达式时,该表达式为可选。

Demo:

SELECT t                              AS r1, row_to_json(t)                           AS j1
     , ROW(1, 'x', numeric '42.1')    AS r2, row_to_json(ROW(1, 'x', numeric '42.1')) AS j2
     ,    (1, 'x', numeric '42.1')    AS r3, row_to_json(   (1, 'x', numeric '42.1')) AS j3
     ,    (1, 'x', '42.1')::myrowtype AS r4, row_to_json((1, 'x', '42.1')::myrowtype) AS j4
FROM  (SELECT 1, 'x', numeric '42.1') t;

db<>fiddle
Old sqlfiddle http://sqlfiddle.com/#!15/af436/1

r1 and j1保留原始列名称。
r2 and j2 do not.
r3 and j3是相同的;演示如何ROW只是噪音。
r4 and j4携带注册类型的列名。

您可以将行(记录)转换为已注册的行类型,如果number and 数据类型元素的数量与行类型匹配 -names的输入字段被忽略。

  • 返回同一行的多列作为对象的 JSON 数组 https://stackoverflow.com/questions/26486784/return-multiple-columns-of-the-same-row-as-json-array-of-objects
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

行构造函数有什么用? 的相关文章

  • Magento --“SQLSTATE[23000]:违反完整性约束..”客户更新

    迁移服务器后 每次尝试更新客户信息时都会出现错误 我正在使用一个客户激活插件 http www magentocommerce com magento connect vinai extension 489 customer activat
  • Google App Engine Flexi 上 Django 的 Postgres 设置

    我正在尝试在应用程序引擎灵活环境中使用 postgres 设置 django 我按照这里的说明进行操作 https cloud google com appengine docs flexible python using cloud sq
  • SQLite (Android):使用 ORDER BY 更新查询

    Android SQLite 我想要在 myTable 中的其他行之间插入行在android中使用SQLite 为此 我尝试增加从第 3 行开始的所有行的 id 这样 我就可以在位置 3 处插入新行 myTable 的主键是列 id 表中没
  • ASP SQL Server 连接

  • 如何连续添加起始行和下一行的值

    我只想创建一个 sql 查询 结果就像图片上的那样 类似于 SQL 中的斐波那契数列 Ex Column 1 10 则 Result 列的值为 Result 10 因为这是第一行 然后假设column1第二行的值为50 那么Result第二
  • 在 MS Access SQL 查询中从正常日期转换为 unix 纪元日期

    我正在尝试编写一个通过 ODBC 连接到 MySQL 数据库的 MS Access 2007 连接的查询 一切工作正常 查询执行我想要的操作 我挂断的部分是我一直在询问用户 unix 纪元时间 而不是常规日期 我查找了 MS Access
  • 本地 Postgres 实例和 Azure Cloud Postgres 实例之间的实时同步

    我需要在本地 postgresql 实例与云 postgresql 实例之间设置实时同步过程 请让我知道我可以通过哪些选项来实现它 我是否必须使用任何特定工具或者可以通过复制进行管理 请指教 使用 PgPool http www pgpoo
  • hive sql查找最新记录

    该表是 create table test id string name string age string modified string 像这样的数据 id name age modifed 1 a 10 2011 11 11 11 1
  • 分组和切换列和行

    我不知道这是否会被正式称为枢轴 但我想要的结果是这样的 Alex Charley Liza 213 345 1 23 111 5 42 52 2 323 5 23 1 324 5 我的输入数据采用这种形式 Apt Name
  • 包含列和行总计的 SQL 数据透视表

    我正在尝试将行和列总计添加到该数据透视表中 create table test4 city nvarchar 10 race nvarchar 30 sex nvarchar 10 age int insert into test4 val
  • 选择多列 按一列分组 按计数排序

    我在Oracle中有以下数据集 c1 c2 c3 1A2 cat black 1G2 dog red B11 frog green 1G2 girl red 试图得到以下结果 基本上我首先尝试获取具有重复 c1 的行 c1 c2 c3 1G
  • 在 Postgres 中存储加密数据 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我需要在 Postgres 中以加密形式存储某些数据 显然 我需要对其进行加密 存储 并且能够读取和解密 做这个的最好方式是什么 The bes
  • H2 SQL 日期比较

    在 H2 数据库中 如何在 TIMESTAMP 类型的列上运行查询 SELECT FROM RECORDS WHERE TRAN DATE lt 2012 07 24 Try 2012 07 24
  • SQL 使用另一列的键和最大值设置列

    我需要根据同一 ID 的 duration 列的最大值更新 max register 列 将值设置为 1 其他值设置为 0 初始表 Id duration max register 1 0 0 1 7 0 1 3 0 2 10 0 2 5
  • Java、Oracle 中索引处缺少 IN 或 OUT 参数:: 1 错误

    您好 我使用 Netbeans 8 0 2 和 Oracle 11g Express Edition 在 JSF 2 2 中编写了一个图书馆管理系统 我有几个名为 书籍 借阅者 等的页面 以及数据库中一些名为相同名称的表 我的问题是这样的
  • 为什么 Double 不能隐式转换为 Decimal

    我不明白十进制和双精度的转换规则 这样做是合法的 decimal dec 10 double doub double dec 然而令我困惑的是 decimal 是 16 字节的数据类型 而 double 是 8 字节 因此将 double
  • 如何拥有引用另一个表的检查约束?

    我在 SQL Server 2008 数据库中有以下表 tblItem 其中有一个ItemID field 好项目 它还有一个 ItemID 字段 并且有一个指向 tblItem 的外键 tblBadItem 它也有一个 ItemID 字段
  • 如何加速spark df.write jdbc到postgres数据库?

    我是 Spark 新手 正在尝试使用 df write 加速将数据帧的内容 可以有 200k 到 2M 行 附加到 postgres 数据库 df write format jdbc options url psql url spark d
  • SQL - 需要查找重复记录但排除反向事务

    我有一张交易表 偶尔会有 重复条目 如果 当管理员发现这些重复条目时 他们将撤销交易 从而创建负值 但由于监管要求 原始重复条目仍然保留 我想创建一个 SQL 查询 并使用 Crystal Reports 来制作报告 以便管理员轻松查找重复
  • Oracle:按月分区表

    我的解决方案 德语几个月 PARTITION BY LIST to char GEBURTSDATUM Month PARTITION p1 VALUES JANUAR PARTITION p2 VALUES Februar PARTITI

随机推荐

  • 如何在 ARCore Sceneform 中旋转节点的旋转动画

    据我所知 ARCore 尚不支持步行等 3D 动画 但如何为节点的旋转设置动画 我知道我可以设置 LocalRotation 或 WorldRotation 但如何以流畅的方式连续制作此动画 最简单的方法是使用Android 属性动画 ht
  • 未知插件中的警告:imageminSvgo。您忘记安装插件了吗?

    这是我从 Webpack 收到的警告 尽管安装了 imageminSvgo 插件 我在图像最小化插件中使用它作为imagemin Svgo 但Webpack似乎没有检测到它 我真的很感激一些帮助我了解如何在我的项目中以最好的方式使用这个插件
  • 如何引用 Firefox 扩展的数据目录中的文件?

    我正在开发一个 Firefox 扩展 我需要将 JavaScript 从内容脚本注入到页面中 在我的 Chrome 扩展中 我做了以下操作 this initializeJplayerSupport function var script
  • URL:破折号与下划线[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 在 URL 中使用连字符或下划线是否更好 应该是 about us or about us 从易用性的角度来说 我个人认为 关于我们对于最终用户来说要
  • 如何恢复此 VBA 项目? Excel 错误消息:“已删除部分:/xl/vbaProject.bin 部分。”

    我在其他论坛上看到过相关帖子 请参阅 http www mrexcel com forum showthread php t 372534 http www mrexcel com forum showthread php t 372534
  • 从文件系统“短读”,什么时候会发生?

    显然 一般来说 read 2 系统调用返回的字节数少于要求读取的字节数 然而 相当多的程序假设在处理本地文件时 read 2 返回的值永远不会小于所要求的值 当然 除非文件更短 所以 我的问题是 在 Linux 上 如果从打开的文件读取并且
  • 在每次循环迭代中创建对象

    我正在使用内置的 z80 导航控件 以下是演示链接 Z80 导航菜单 https github com kernelENREK Z80 NavigationBar 如果有人看到该控件 它有一个对象来创建菜单 如父菜单 及其下的子菜单 像下面
  • Android Studio 中的“noinspection”关键字列表

    在 Android Studio 中 我有时会使用这种注释来禁用对我已经处理过的特定代码行的检查警告 例如 if Build VERSION SDK INT lt Build VERSION CODES JELLY BEAN noinspe
  • 添加悬停效果,例如一个(大)绘图表的工具提示?

    我是编程新手 我对 R 的了解还算丰富 我正在努力生成一个大表格 其中单元格内容将从将鼠标光标悬停在相关单元格上展开 这与另一个问题中的提议类似 在闪亮的数据表中为每个单元格显示工具提示或弹出窗口 https stackoverflow c
  • Vim 光标用 .vimrc 换行

    我似乎无法让光标换行在 vim 7 3 中工作 我尝试过其他地方找到的建议 包括以下建议 但没有效果 set whichwrap lt gt set whichwrap gt l set whichwrap lt h 有什么建议么 我已经包
  • 如何在 Angular 中嵌入 YouTube 视频?

    我在 YouTube 上关注了这个教程 它基本上是一张包含您喜欢的音乐的表格 但教程结束了 它使用 Angular2 一切都工作正常 但是这位先生留下的地方 它只是使用以下代码在控制台中显示视频的构造函数 播放列表 组件 Ts export
  • Apache Velocity:如何像 Java 中那样定义自定义方法?

    我目前在 Polarion 应用程序 ALM 软件中编写了一个 wiki 页面 这些页面上的语法包括 据我所知 HTML Javascript 和 Apache Velocity 所以我想在 Apache Velocity 中编写一个脚本
  • 如何使用Jest测试文件下载?

    我有一些代码如下 global document global window global Blob import FileSaver from file saver export const createDownloadFromBlob
  • 检测数字键盘是否存在?

    是否可以判断系统是否连接有数字键盘 台式机键盘通常有数字键盘 而笔记本电脑通常没有 尽管它们将数字键盘键放在普通键盘中 并通过 Num Lock 激活 操作系统是否知道小键盘按键是否在物理上是分开的 如果是这样 这些信息是否会以某种方式暴露
  • 通过 ODBC 连接检索的表情符号数据显示为问号

    我从经典 ASP 页面连接到 MySQL 版本 5 5 50 log MySQL数据库设置如下 数据库字符集 utf8mb4 数据库排序规则 utf8mb4 general ci 表和字段 字符集 utf8mb4 排序规则 utf8mb4
  • 更新 mnesia 架构的最简单方法是什么?

    例如 我保存了 id name 在 mnesia 并想要更新到 id name age 我需要打电话吗transform table每次我更改架构时 最简单的方法是删除该表并重新创建它 如果需要保留表中的数据 mnesia transfor
  • 来自字符串“Yellow”的 Java 颜色

    有什么方法可以从字符串中获取颜色 例如 白色 Color color Field field Class forName java awt Color getField Yellow color Color field get null I
  • 动态添加的表单字段在 form.cleaned_data 中被删除

    我在模板中放置了一些客户端 JavaScript 允许用户动态地将字段添加到表单中 我的问题是这些字段被清理了form cleaned data 所以我无法以这种方式访问 它们 所有字段都可以在request POST 所以我可以用它来解决
  • 算法 - 如何通过 2n/3 比较对 0/1 数组进行排序?

    In 算法设计手册 http www algorist com 有这样的消费税 4 26 考虑使用以下方法对 n 个 0 和 1 的序列进行排序的问题 比较 对于两个值 x 和 y 的每次比较 该算法 了解 x y 中哪一个成立 a 给出一
  • 行构造函数有什么用?

    在 PostgreSQL 中 什么是ROW 函数用于 具体有什么区别 SELECT ROW t f1 t f2 42 FROM t where f1属于类型int f2属于类型text and CREATE TYPE myrowtype A