Không có hàm gốc nào có chức năng như vậy nhưng bạn có thể sử dụng regexp_split_to_table
để làm như vậy như sau:
select theword
from (select regexp_split_to_table('banana',E'(?=.)') theword) tab
order by theword;
Kết quả sẽ là:
theword
a
a
a
b
n
n
(?=.)
này sẽ phân chia theo từng ký tự để lại ký tự là dấu phân cách. Nó cũng sẽ xác định không gian. Nếu bạn có một từ có dấu cách và không muốn từ đó (dấu cách), hãy sử dụng E'(\\s*)'
khớp với bất kỳ ký tự khoảng trắng nào. Tôi không nhớ E
là gì có nghĩa. Tôi sẽ tìm kiếm và chỉnh sửa câu trả lời càng sớm càng tốt.
Như đã giải thích trong DOCs trong phần "regexp_split_to_table"
CHỈNH SỬA:Như tôi đã nói:Ý nghĩa của E
trước chuỗi, bạn có thể xem tại đây: Cái gì " E "trước chuỗi Postgres?