sql - Postgres查询的输出格式不一致
问题描述
我正在为 3 个 varchar(n) 字段查询 Postgres 数据库,如下所示:
Select ("Title","Author","Isbn") from public."Book" Where 1=1
查询的输出是一个包含 3 个字符串的元组。然而,输出的格式有时在记录之间是不一致的。注意查询的输出:
请注意第 40 行和第 41/42 行之间第一个元素的差异。第 40 行的第一个元素是“Revolutionary Road”(用双引号括起来)。第 41 行的第一个元素是 Neuromancer(没有用引号括起来)。同样的现象也出现在查询集中的其他地方。
我不确定为什么第一个元素有时与查询返回的方式不一致。这不是个人记录本身的问题。还有什么可能是错的?
解决方案
结果是正确的。在这种输出格式中,当字符串有空格或一些特殊字符时,Postgres 使用引号:
postgres=# select row('ahoj', 'ahoj svete', 'ahoj,svete', '"ahoj svete"');
┌───────────────────────────────────────────────────┐
│ row │
╞═══════════════════════════════════════════════════╡
│ (ahoj,"ahoj svete","ahoj,svete","""ahoj svete""") │
└───────────────────────────────────────────────────┘
(1 row)
如果您不想要复合值的输出格式,请不要使用row
构造函数:
postgres=# select 'ahoj', 'ahoj svete', 'ahoj,svete', '"ahoj svete"';
┌──────────┬────────────┬────────────┬──────────────┐
│ ?column? │ ?column? │ ?column? │ ?column? │
╞══════════╪════════════╪════════════╪══════════════╡
│ ahoj │ ahoj svete │ ahoj,svete │ "ahoj svete" │
└──────────┴────────────┴────────────┴──────────────┘
(1 row)
推荐阅读
- reactjs - React Reload 即时消息传递
- javascript - MongoDB在子对象中增加一个变量
- package - 如何从用户定义的包中正确导入宏?
- windows-subsystem-for-linux - Win 10 WSL 不会使用 Ubuntu 将默认版本设置为 2
- java - 在 JAVA 中的自定义异常中将 arrayList 作为消息返回
- javascript - 脚本中的函数未执行 (HTML)
- visual-studio-code - 降价文件中 Git 提交之间的文件差异
- javascript - 如何在带有 launchWebAuthFlow 的 chrome 扩展中使用 oidc-client?
- json - 如何在 JSON 自适应卡中使用 If 语句让团队在提交的选择响应中 @mention 用户?
- three.js - 将 Autodesk forge 与 mapbox 一起使用时的问题