在postgres视图中,我想添加一个时间为青铜时代的视图。问题是有不同种类的青铜时代(例如:青铜时代早期和青铜时代晚期)。我尝试使用通配符找到所有的青铜时代,但我做错了。
我在temporal_abr列中有以下数据:
Bronze_age laat: 1100 - 800 vC
Bronze_age late 1100 - 800 vC and Iron_age: 800 - 12 vC
Bronze_age: 2000 - 800 vC and Iron_age: 800 - 12 vC
Iron_age late: 250 - 12 vC
Medieval late: 1050 - 1500 nC and Bronze_age late: 1100 - 800 vC
我想获得Bronze_age存在的所有记录。我试图用以下SQL
来做到这一点CREATE OR REPLACE VIEW dans_tijd AS
SELECT import_tijd.dans_code,
import_tijd.temporal_abr,
geom_tijd.geom AS geometry,
FROM import_tijd
JOIN geom_tijd ON import_tijd.dans_code = geom_tijd.dans_code
where import_tijd.temporal_abr LIKE 'Bronze_age%'
请记住,bronze_age之间有一个空格。有人能帮助我吗?
答案 0 :(得分:1)
使用%
代替*
并将=
更改为ILIKE
或LIKE
WHERE import_tijd.temporal_abr ILIKE 'bronze_age%'
ILIKE
如果字母区分大小写,则使用LIKE
你可以在中阅读 Manual refrence
修改:关注您的示例数据:
WHERE import_tijd.temporal_abr ILIKE 'bronze_age%'
会给:
Bronze_age laat: 1100 - 800 vC
Bronze_age late 1100 - 800 vC and Iron_age: 800 - 12 vC
Bronze_age: 2000 - 800 vC and Iron_age: 800 - 12 vC
如果您在开头添加%
,您将获得包含文字bronze_age
的所有内容。
WHERE import_tijd.temporal_abr ILIKE '%bronze_age%'
会给:
Bronze_age laat: 1100 - 800 vC
Bronze_age late 1100 - 800 vC and Iron_age: 800 - 12 vC
Bronze_age: 2000 - 800 vC and Iron_age: 800 - 12 vC
Medieval late: 1050 - 1500 nC and Bronze_age late: 1100 - 800 vC