Postgresql 将日语全角转换为半角

Postgresql convert Japanese Full-Width to Half-Width

我正在处理日语数据,在一些日语单词中,有英文单词和数字。

SSCKEN、松井ケ丘3、コミリH&G、筱路7-1就是例子

我想通过抛出函数或任何可能的方式将这些全角的英文和数字转换为半角。

上面输入的输出应该看起来像 "SYSKEN, 松井ケ丘3, コメリH&G, 篠路7-1"

如果有人知道最好的开始方式,我将不胜感激。

使用 translate() 函数怎么样?

-- prepare test data
CREATE TABLE address (
    id integer,
    name text
);
INSERT INTO address VALUES (1, 'SYSKEN, 松井ケ丘3, コメリH&G, 篠路7-1');

-- show test data
SELECT * from address;

-- convert Full-Width to Half-Width Japanese
UPDATE address SET name = translate(name,
    '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ',
    '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
);

-- see the converted data
SELECT * from address;

此代码使名称列变为 "SYSKEN, 松井ケ丘3, コメリH&G, 篠路7-1"。