gpt4 book ai didi

PostgreSQL 与子字符串比较不起作用

转载 作者:行者123 更新时间:2023-11-29 14:23:41 34 4
gpt4 key购买 nike

我想从 2 个表中选择,其中第二个 ID 等于第一个 ID 的前 4 个字符

SELECT a.*, b.*, substring(a.my_id from 1 for 4)::integer as number
FROM table1 as a
INNER Join table2 as b ON(b.id_2=number) where my_id = 101
^
It produces an error here |

错误:列“编号”不存在

SQL 状态:42703

字符数:189

最佳答案

你不能使用那样的别名,你需要一个派生表:

select *
from (
SELECT t1.*,
substring(t1.my_id::text from 1 for 4)::integer as number
FROM table1 t1
) as a
inner join table2 as b ON (b.id_2 = a.number)
where my_id = 101

将用作外键的数字作为 varchar 列的一部分存储是一个非常非常丑陋的设计。该数字在 table1 中应该是它自己的一列。

关于PostgreSQL 与子字符串比较不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11647821/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com