SQL Select查询如何仅返回字段值 不返回字段名及行数提示
你当前看到的字段名、分隔线、末尾(1 row)统计都不是SELECT查询本身返回的内容,是PostgreSQL默认命令行客户端psql的默认输出装饰,不存在SELECT层面的过滤语法可以实现这个需求,调整psql的输出参数就能直接拿到纯字段值。
1. 基础纯结果输出
psql提供了专门的元组输出模式,会自动屏蔽所有非数据的展示内容:
- 命令行直接执行查询时,加
-t参数(--tuples-only的简写)即可:
psql -d 你的数据库名 -t -c "select url from file where owner='abc' AND name='xyz';"
执行返回的内容里不会再有列名、分隔线、行数统计,仅保留查询到的结果值。
- 如果已经进入psql交互终端,不需要退出,直接执行切换开关:
\t
终端提示Tuples only is on之后,再执行SELECT语句就只会输出纯数据。后续要恢复默认带列名的格式,再执行一次\t即可切回原模式。
2. 无冗余空白的严格纯值输出
如果是写shell脚本需要把查询结果直接赋值给变量,不想拿到值前后的对齐空格、空行,可以搭配-A(关闭对齐填充)参数使用,输出完全无多余字符的结果:
psql -d 你的数据库名 -tA -c "select url from file where owner='abc' AND name='xyz';"
执行后会直接返回干净的/abc/xyz.com,没有任何多余空格、提示内容,可以直接被脚本捕获使用。
其他客户端场景
如果你用的不是psql,是其他数据库GUI/命令行客户端,逻辑一致:列名、行数提示都属于客户端的渲染配置,在客户端设置里找到「隐藏列头」「关闭结果统计」类的选项开启即可,不需要改动SQL语句。
内容的提问来源于stack exchange,提问作者RR HS
相关产品推荐
相关产品推荐

