gpt4 book ai didi

sql - 如何删除不能转换为 INT 的行

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

我的 postgresql 9.1 中有这个带有门牌号的示例表:

drop table if exists mytable;
create table mytable(road_id int, housenr text);
insert into mytable(road_id, housenr) values

('11', '1' ),
('22', '12' ),
('33', '99/1' ),
('44', '88' ),
('55', '2' ),
('66', '28' ),
('77', '29')
;

现在我必须将整个列“housenr”转换为一个 INT 字段。 SQL 中是否有一种方法可以只从可以转换的列中转换这些行。在 mytable 中,这将是除了“housenr”= 99/1 的每一行。
类似的东西:对于每一行,如果::int 是可能的,则转换该行,否则从表中删除

最佳答案

您可以使用 REGEX 评估您的列值以确定它是否为数字:

select * FROM MyTable where (housenr !~ '^[0-9]+$')

这是 SQLFiddle:

http://sqlfiddle.com/#!1/d2ff3/9

这是关于 ~ 和 ~ 的 Postgresql 文档!

http://www.postgresql.org/docs/current/static/functions-matching.html#FUNCTIONS-POSIX-TABLE

关于sql - 如何删除不能转换为 INT 的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14126302/

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