sql - 如何在 Postgresql 中格式化数值
问题描述
我有一组代码可以生成一个数字,如下所示
SELECT MAX(RIGHT ("node_id",3)::numeric) + 1 as newnum from sewers.structures
WHERE(
ST_WITHIN(
ST_CENTROID((ST_SetSRID(structures.geom, 4326))),
ST_SetSRID((SELECT geom FROM sewers."Qrtr_Qrtr_Sections" WHERE "plat_page" = '510A'),4326)) ) and "node_id" != 'PRIVATE' and "node_id" !='PRIV_SAN' and "node_id" !='PRIV_STORM'
当我运行它时,它会根据先前放置的值生成一个数字。输出将是一个最多为 3 位的数字。我想输出少于三位数的输出,并将其强制转换为 3 位数格式。
例如,如果我生成数字,93
我想将其格式化为093
. 对于单个数字也一样2
,我希望它的格式为002
等。但是,如果它生成一个 3 位数字,我希望它保持相同的格式,所以121
保持为121
.
解决方案
如果我的问题是正确的,那么您正在寻找lpad()
:
WITH j (x) AS (
VALUES (2),(121),(93)
)
SELECT lpad(x::text,3,'0') FROM j;
lpad
------
002
121
093
(3 rows)
推荐阅读
- php - php中jdtojewish函数中的日期错误
- python - 在 Shapely 中获取 MultiPoint 内最近点的坐标
- python - 如何通过Django中的表单向整数字段添加值?
- django - 部署 Django 时出错,无法配置静态文件
- javascript - 将事件侦听器添加到由 Javascript 函数动态创建的元素
- sql - 无法让部门处理加入的子查询
- c++ - 为 UWP 生成时 CMake 无法获取 VCTargetsPath 的值
- hadoop - 如何在 Hive 中使用另一个表中的特定列值创建表
- python - 如何访问 Selenium 中 Web 元素中的元素?
- php - 如何检查 SplFixedArray 是否包含值?