在 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
收货人地址包含多个文本,例如在这 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
| 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