在 Postgresql 中替换字符串包含多个字符串

Replace String Contain multiple string in Postgresql

收货人地址包含多个文本,例如在这 4 行消费者地址中。

     |         Address Line                 |
     |--------------------------------------|
     |APARTMENT 5800 springfield GARDENS CIR|
     |--------------------------------------|
     |APT 5800 springfield GARDENS CIR      |
     |--------------------------------------|
     |2567 south pay street                 |
     |--------------------------------------|
     |Office 222 Market , VA 048946         |

我如何添加另一个包含特定字符的列,例如 Address Line 包含 "Apartment" 或 "APT" 将变为 "Apartment" 和 Address Line 包含 "Street" 将变为 "Household" , Address Line 包含 "Office" 将变为 "Office building" 并且 "Unknown" 对于 Address Line 不包含。

这是 PostgreSql

中包含的查询后所需的 table
         |         Address Line                 |      Location      |
         |--------------------------------------|--------------------|
         |APARTMENT 5800 springfield GARDENS CIR|   Apartement       |
         |--------------------------------------|--------------------|
         |APT 5800 springfield GARDENS CIR      |   Apartement       |
         |--------------------------------------|--------------------|
         |2567 south pay street                 |   Household        |
         |--------------------------------------|--------------------|
         |Office 222 Market , VA 048946         |   Office building  |
         |--------------------------------------|--------------------|

这是我的查询:

 SELECT ORDER_TABLE.guest_email,
        CASE WHEN ORDER_SHIPPINGADDRESS.LINE1 IN ('Apartement', 'apt') Then 'Apartement'
        WHEN ('street') then 'household'
        WHEN ('Office') then 'Office Building'
        ELSE 'Location Unknown' END as Location

到目前为止我的试用是使用 Case When 但是它结束时出现这样的错误

ERROR: argument of CASE/WHEN must be type boolean, not type record

是否有任何函数可以实现上述 table 所需的功能?谢谢

你应该在每个

时重复 ORDER_SHIPPINGADDRESS.LINE1 IN
SELECT ORDER_TABLE.guest_email,
    CASE WHEN ORDER_SHIPPINGADDRESS.LINE1 IN ('Apartement', 'apt') Then 'Apartement'
         WHEN ORDER_SHIPPINGADDRESS.LINE1 IN ('street') then 'household'
         WHEN ORDER_SHIPPINGADDRESS.LINE1 IN ('Office') then 'Office Building'
    ELSE 'Location Unknown' END as Location