我在表格中有一列,其中包含伪地址-街道名称和编号. 地址是 hebrew : ביאליק23 但我想返回相同的地址,但只是数字颠倒了: ביאליק32 我不确定这与此有什么关系--但列是VARCHAR2(56),NLS_CHARACTERSET IW8ISO8859P8

create table a (address VARCHAR2(56));

insert into  a (address) values ('ביאליק 23');

select 'return the full address but reverse only the numbers' from a;

推荐答案

假设街道地址总是首先出现,我们可以try 结合使用regex子字符串操作和REVERSE()字符串函数:

SELECT
    REVERSE(REGEXP_SUBSTR(address, '([0-9]+)$', 1, 1, NULL, 1)) || ' ' ||
    REGEXP_SUBSTR(address, '(.*) [0-9]+$', 1, 1, NULL, 1) AS new_address
FROM a;

Sql相关问答推荐

跨多列的PostgreSQL非不同对

如何在postgres函数中插入后返回布尔值?

如何在SQL Server中拆分包含字符和数字的列?

返回找到的最小和最大row_number()spark SQL

NULL-生成的列中连接的字符串的输入

属于(日期)范围类型及其交集的总权重​

根据时间、状态和相关行在PostgreSQL中的存在来删除行

在Power Bi中将SQL代码转换为DAX

两个月之间的WHERE CASE WHEN-ORA-00905:缺少关键字

使用左外部联接更正列中第+1行的值时重复

使用 union 的有序结果获取行数

我可以在 T-SQL (SQL Server) 的函数内使用 OPTION 子句吗?

如何在TSQL中编写此窗口查询

如何根据共同列值从两个表中包含列,但只包含左表中的行

标量子查询中的窗口函数不起作用

函数调用作为插入值语句中的参数

如何通过子 Select 在一次更新(并行数组)中多次更新相同的行

snowfalke 会在 Select 运行时锁定表吗?

SQL Server Where 条件

pyspark 将列转换为行