Compute
Elastic Cloud Server
Huawei Cloud Flexus
Bare Metal Server
Auto Scaling
Image Management Service
Dedicated Host
FunctionGraph
Cloud Phone Host
Huawei Cloud EulerOS
Networking
Virtual Private Cloud
Elastic IP
Elastic Load Balance
NAT Gateway
Direct Connect
Virtual Private Network
VPC Endpoint
Cloud Connect
Enterprise Router
Enterprise Switch
Global Accelerator
Management & Governance
Cloud Eye
Identity and Access Management
Cloud Trace Service
Resource Formation Service
Tag Management Service
Log Tank Service
Config
OneAccess
Resource Access Manager
Simple Message Notification
Application Performance Management
Application Operations Management
Organizations
Optimization Advisor
IAM Identity Center
Cloud Operations Center
Resource Governance Center
Migration
Server Migration Service
Object Storage Migration Service
Cloud Data Migration
Migration Center
Cloud Ecosystem
KooGallery
Partner Center
User Support
My Account
Billing Center
Cost Center
Resource Center
Enterprise Management
Service Tickets
HUAWEI CLOUD (International) FAQs
ICP Filing
Support Plans
My Credentials
Customer Operation Capabilities
Partner Support Plans
Professional Services
Analytics
MapReduce Service
Data Lake Insight
CloudTable Service
Cloud Search Service
Data Lake Visualization
Data Ingestion Service
GaussDB(DWS)
DataArts Studio
Data Lake Factory
DataArts Lake Formation
IoT
IoT Device Access
Others
Product Pricing Details
System Permissions
Console Quick Start
Common FAQs
Instructions for Associating with a HUAWEI CLOUD Partner
Message Center
Security & Compliance
Security Technologies and Applications
Web Application Firewall
Host Security Service
Cloud Firewall
SecMaster
Anti-DDoS Service
Data Encryption Workshop
Database Security Service
Cloud Bastion Host
Data Security Center
Cloud Certificate Manager
Edge Security
Managed Threat Detection
Blockchain
Blockchain Service
Web3 Node Engine Service
Media Services
Media Processing Center
Video On Demand
Live
SparkRTC
MetaStudio
Storage
Object Storage Service
Elastic Volume Service
Cloud Backup and Recovery
Storage Disaster Recovery Service
Scalable File Service Turbo
Scalable File Service
Volume Backup Service
Cloud Server Backup Service
Data Express Service
Dedicated Distributed Storage Service
Containers
Cloud Container Engine
SoftWare Repository for Container
Application Service Mesh
Ubiquitous Cloud Native Service
Cloud Container Instance
Databases
Relational Database Service
Document Database Service
Data Admin Service
Data Replication Service
GeminiDB
GaussDB
Distributed Database Middleware
Database and Application Migration UGO
TaurusDB
Middleware
Distributed Cache Service
API Gateway
Distributed Message Service for Kafka
Distributed Message Service for RabbitMQ
Distributed Message Service for RocketMQ
Cloud Service Engine
Multi-Site High Availability Service
EventGrid
Dedicated Cloud
Dedicated Computing Cluster
Business Applications
Workspace
ROMA Connect
Message & SMS
Domain Name Service
Edge Data Center Management
Meeting
AI
Face Recognition Service
Graph Engine Service
Content Moderation
Image Recognition
Optical Character Recognition
ModelArts
ImageSearch
Conversational Bot Service
Speech Interaction Service
Huawei HiLens
Video Intelligent Analysis Service
Developer Tools
SDK Developer Guide
API Request Signing Guide
Terraform
Koo Command Line Interface
Content Delivery & Edge Computing
Content Delivery Network
Intelligent EdgeFabric
CloudPond
Intelligent EdgeCloud
Solutions
SAP Cloud
High Performance Computing
Developer Services
ServiceStage
CodeArts
CodeArts PerfTest
CodeArts Req
CodeArts Pipeline
CodeArts Build
CodeArts Deploy
CodeArts Artifact
CodeArts TestPlan
CodeArts Check
CodeArts Repo
Cloud Application Engine
MacroVerse aPaaS
KooMessage
KooPhone
KooDrive
On this page

String Functions and Operators

Updated on 2024-12-13 GMT+08:00

String Operators

|| Indicates the character connection.

SELECT 'he'||'llo'; –hello

String Functions

These functions assume that the input string contains valid UTF-8 encoded Unicode code points. They do not explicitly check whether UTF-8 data is valid. For invalid UTF-8 data, the function may return an incorrect result. You can use from_utf8 to correct invalid UTF-8 data.

In addition, these functions operate on Unicode code points, not on characters (or font clusters) visible to users. Some languages combine multiple code points into a single user-perceived character (which is the basic unit of the language writing system), but functions treat each code point as a separate unit.

The lower and upper functions do not perform locale-related, context-related, or one-to-many mappings required by certain languages.

  • chr(n) → varchar

    Description: Returns the value of a character whose Unicode encoding value is n.

    select chr(100); --d
  • char_length(string) → bigint

    For details, see length(string).

  • character_length(string) → bigint

    For details, see length(string).

  • codepoint(string) → integer

    Description: Returns the Unicode encoding of a single character.

    select codepoint('d'); --100
  • concat(string1, string2) → varchar

    Description: Concatenates strings.

    select concat('hello','world'); -- helloworld
  • concat_ws(string0, string1, ..., stringN) → varchar

    Description: Concatenates string1, string2, ..., and stringN into a string using string0 as the separator. If string0 is null, the return value is null. If the parameter following the separator is null, the parameter will be skipped during concatenation.

    select concat_ws(',','hello','world'); -- hello,world
    select concat_ws(NULL,'def'); --NULL
    select concat_ws(',','hello',NULL,'world'); -- hello,world
    select concat_ws(',','hello','','world'); -- hello,,world
  • concat_ws(string0, array(varchar)) → varchar

    Description: Concatenates elements in an array using string0 as the separator. If string0 is null, the return value is null. Any null value in the array will be skipped.

    select concat_ws(NULL,ARRAY['abc']);--NULL
    select concat_ws(',',ARRAY['abc',NULL,NULL,'xyz']); -- abc,xyz
    select concat_ws(',',ARRAY['hello','world']); -- hello,world
  • decode(binary bin, string charset) →varchar

    Description: Encodes the first parameter into a string based on the specified character set. The supported character sets include UTF-8, UTF-16BE, UTF-16LE, and UTF-16. If the first parameter is null, null is returned.

    select decode(X'70 61 6e 64 61','UTF-8');
     _col0 
    -------
     panda 
    (1 row)
     
    select decode(X'00 70 00 61 00 6e 00 64 00 61','UTF-16BE');
     _col0 
    -------
     panda 
    (1 row)
  • encode(string str, string charset) →binary

    Description: Encodes a string based on the specified character set.

    select encode('panda','UTF-8');
         _col0      
    ----------------
     70 61 6e 64 61 
    (1 row)
  • find_in_set (string str, string strList) →int

    Description: Returns the position of the first occurrence of the string in the comma-separated strList. If a parameter is null, null is returned.

    select find_in_set('ab', 'abc,b,ab,c,def'); -- 3
  • format_number(number x, int d) →string

    Description: Formats the number x to #,###,###.##, reserves d decimal places, and returns the result as a string.

    select format_number(541211.212,2); -- 541,211.21
  • format(format,args...) → varchar

    Description: For details, see Format.

  • locate(string substr, string str, int pos]) →int

    Description: Returns the position of the first occurrence of the substring after the pos position in the string. If the condition is not met, 0 is returned.

    select locate('aaa','bbaaaaa',6);-- 0
    select locate('aaa','bbaaaaa',1);-- 3
    select locate('aaa','bbaaaaa',4);-- 4
  • length(string) → bigint

    Description: Returns the length of the string.

    select length('hello');-- 5
  • levenshtein_distance(string1, string2) → bigint

    Description: Calculates the Levenshtein distance between string1 and string2, that is, the minimum number of single-character edits (insertions, deletions, or substitutions) required to convert string1 to string2.

    select levenshtein_distance('helo word','hello,world'); -- 3
  • hamming_distance(string1, string2) → bigint

    Description: Returns the Hamming distance between character strings 1 and 2, that is, the number of different characters in the corresponding positions. Note that the lengths of the two strings must be the same.

    select hamming_distance('abcde','edcba');-- 4
  • instr(string,substring) → bigint
    Description: Locates the first occurrence of a substring in a string.
    select instr('abcde', 'cd');--3
  • levenshtein(string1, string2) → bigint

    For details, see levenshtein_distance(string1, string2).

  • levenshtein_distance(string1, string2) → bigint

    Description: Returns the Levenshtein edit distance between string 1 and string 2, that is, the minimum number of single-character edits (insertion, deletion, or replacement) required to change string 1 to string 2.

    select levenshtein_distance('apple','epplea');-- 2
  • lower(string) → varchar

    Description: Converts characters into lowercase letters.

    select lower('HELLo!');-- hello!
  • lcase(string A) → varchar

    Description: Same as lower(string).

  • ltrim(string) → varchar

    Description: Removes spaces at the beginning of a character string.

    select ltrim('   hello');-- hello
  • lpad(string, size, padstring) → varchar

    Description: Pads the string to the left to resize it using padstring. If size is less than the length of the string, the result is truncated to size characters. The size cannot be negative, and the padding string must not be empty.

    select lpad('myk',5,'dodo'); -- domyk
  • luhn_check(string) → boolean

    Description: Tests whether a numeric string is valid based on the Luhn algorithm.

    This checksum function, also known as mod 10, is widely used to validate a variety of identification numbers, such as credit card numbers and ID card numbers.

    select luhn_check('79927398713'); -- true
    select luhn_check('79927398714'); -- false
  • octet_length(string str) → int

    Description: Returns the number of bytes for saving the string encoded using UTF-8.

    select octet_length('query');--5
  • parse_url(string urlString, string partToExtract [, string keyToExtract]) →string

    Description: Returns the specified part of a URL. The valid value of the partToExtract parameter is HOST, PATH, QUERY, REF, PROTOCOL, AUTHORITY, FILE, and USERINFO. keyToExtract is an optional parameter, which is used to select the value corresponding to the key in QUERY.

    select parse_url('https://www.example.com/index.html','HOST');
      _col0   
    ----------
     www.example.com
    (1 row)
     
    -- Query the value of service in QUERY of the URL.
    select parse_url('https://www.example.com/query/index.html?name=panda','QUERY','name');
     _col0 
    -------
     panda 
    (1 row)
  • position(substring IN string) →bigint

    Description: Returns the position of the first occurrence of a substring in the parent string.

    select position('ab' in 'sssababa');-- 4
  • quote(String text) → string

    Description: Returns a string enclosed in single quotation marks. Strings containing single quotation marks are not supported.

    select quote('DONT');-- 'DONT'
    select quote(NULL);-- NULL
  • repeat2(string str, int n) → string

    Description: Returns a string obtained by repeating the str string for n times.

    select repeat2('abc',4);
        _col0     
    --------------
     abcabcabcabc 
    (1 row)
  • replace(string, 'a')→ varchar

    Description: Removes the character a from the character string.

    select replace('hello','e');-- hllo
  • replace(string, 'a', 'b')→ varchar

    Description: Replaces all a characters in a string with b.

    select replace('hello','l','m');-- hemmo
  • reverse(string) → varchar

    Description: reverses the string.

    select reverse('hello');-- olleh
  • rpad(string, size, padstring) → varchar

    Description: Pads the string to the right to resize it using padstring. If size is less than the length of the string, the result is truncated to size characters. The size cannot be negative, and the padding string must not be empty.

    select rpad('myk',5,'dog'); -- mykdo
  • rtrim(string) → varchar

    Description: Removes spaces at the end of a character string.

    select rtrim('hello world!   ');-- hello world!
  • space(int n) → varchar

    Description: Returns n spaces.

    select space(4);
     _col0 
    -------
           
    (1 row)
     
    select length(space(4));
     _col0 
    -------
         4 
    (1 row)
  • split(string, delimiter) → array

    Description: Splits the string by delimiters into an array.

    select split('a:b:c:d',':');-- [a, b, c, d]
  • split(string, delimiter, limit) → array

    Description: Splits a string into an array by delimiter. limit indicates the number of elements. The last element contains all the characters of the last string. limit must be a number.

    select split('a:b:c:d',':',2);-- [a, b:c:d]
    select split('a:b:c:d',':',4);-- [a, b, c, d]
  • split_part(string, delimiter, index) → varchar

    Description: Splits a string into an array by delimiter and extracts the elements whose index value is index. The index starts from 1. If the index exceeds the array length, NULL is returned.

    select split_part('a:b:c:d',':',2); -- b
    select split_part('a:b:c:d',':',5); -- NULL
  • split_to_map (string, entryDelimiter, keyValueDelimiter) → map<varchar, varchar>

    Description: Splits a string into mapped key-value pairs by entryDelimiter, and each key-value pair differentiates keys and values by keyValueDelimiter.

    select split_to_map('li:18,wang:17',',',':');--{wang=17, li=18}
  • split_to_multimap(string, entryDelimiter, keyValueDelimiter) -> map(varchar, array(varchar)

    Description: Splits a string by entryDelimiter and keyValueDelimiter and returns a map. Each key corresponds to a value of the array type. entryDelimiter splits a string into key-value pairs, and keyValueDelimiter splits a key-value pair into a key and a value.

    select split_to_multimap('li:18,wang:17,li:19,wang:18',',',':');--{wang=[17, 18], li=[18, 19]}
  • strpos(string, substring) → bigint

    Description: Returns the position of the first occurrence of substring in a string. The value starts from 1. If the value is not found, the value 0 is returned. Example:

    select strpos('hello world!','l'); --3
    select strpos('hello world!','da'); --0
  • str_to_map() For details, see split_to_map().
  • substr(string, start) → varchar

    Description: Truncates a character string from the start position.

    select substr('hello world',3);-- llo world
  • substr(string, start, length) → varchar

    Description: Truncates a character string from the start position. The truncated length is length.

    Generally, it is used to truncate the timestamp format.

    Select substr('2019-03-10 10:00:00',1,10); --Truncate to March 10, 2019.
    Select substr('2019-03-10 10:00:00',1,7); --Truncate to March 2019.
  • substring(string, start) → varchar

    For details, see substr(string, start).

  • substring_index(string A, string delim, int count) → varchar

    Description: If count is a positive number, all content before the count delimiter from the left is returned. If count is a negative number, all content after the count delimiter from the right is returned.

    select substring_index('one.two.three','.',2);
          _col0      
    -----------------
     one.two 
    (1 row)
     
    select substring_index('one.two.three','.',-2);
          _col0      
    -----------------
     two.three 
    (1 row)
     
    select substring_index('one.two.three','.',0);
     _col0 
    -------
     NULL  
    (1 row)
  • soundex(string A) →varchar

    Description: Returns code (soundex) consisting of four characters to evaluate the similarity of two strings in pronunciation. The rules are as follows:

    Table 1 Character mapping rule

    Character

    Digit

    a, e, h, i, o, u, w, and y

    0

    b. f, p, and v

    1

    c. g, j, k, q, s, x, and z

    2

    d and t

    3

    l

    4

    m and n

    5

    r

    6

    • Extracts the first letter of a string as the first value of soundex.
    • Replaces the latter letters with digits one by one based on the preceding letter mapping rules. If there are consecutive equal numbers, retain only one number and delete.
    • If the result contains more than four digits, the first four digits are used. If the result contains less than four digits, pad 0s to the end.
      select soundex('Miller');
       _col0 
      -------
       M460  
      (1 row)
  • translate(string|char|varchar input, string|char|varchar from, string|char|varchar to) →varchar

    Description: Replaces the string specified by the from parameter with the string specified by the to parameter for an input string. If one of the three parameters is null, NULL is returned.

    select translate('aabbcc','bb','BB');
     _col0  
    --------
     aaBBcc 
    (1 row)
  • trim(string) → varchar

    Description: Removes spaces at the beginning and end of a character string.

    select trim('  hello world!  ');-- hello world!
  • btrim(String str1,String str2) → varchar

    Description: Removes all characters contained in str2 from the beginning and end of str1.

    select btrim('hello','hlo');-- e
  • upper(string) → varchar

    Description: Converts character strings to uppercase letters.

    select upper('heLLo');-- HELLO
  • ucase(string A) → varchar

    Description: Same as upper(string).

  • base64decode(STRING str)

    Description: Performs Base64 reverse encoding on the character string.

    SELECT to_base64(CAST('hello world' as varbinary));-- aGVsbG8gd29ybGQ=
    select base64decode('aGVsbG8gd29ybGQ=');-- hello world
  • jaro_distance(STRING str1, STRING str2)

    Description: Compares the similarity between two character strings.

    select JARO_DISTANCE('hello', 'hell');-- 0.9333333333333332 
  • FNV_HASH(type v)

    Description: Calculates the hash value of a character string.

    select FNV_HASH('hello');-- -6615550055289275125 
  • word_stem(word) → varchar

    Description: Returns the stem of an English word.

    select word_stem('greating');-- great
  • word_stem(word, lang) → varchar

    Description: Returns the stem of a word in a specified language.

    select word_stem('ultramoderne','fr');-- ultramodern
  • translate(source, from, to) → varchar

    Description: Returns the translated source string by replacing the characters found in the source string with the corresponding characters in the target string. If the from string contains duplicate items, only the first one is used. If the source character does not exist in the from string, the source character is copied without translation. If the index of the matching character in the from string exceeds the length of the to string, the source character is omitted from the result string.

    SELECT translate('abcd', '', ''); -- 'abcd'
    SELECT translate('abcd', 'a', 'z'); -- 'zbcd'
    SELECT translate('abcda', 'a', 'z'); -- 'zbcdz'
    SELECT translate('Palhoça', 'ç','c'); -- 'Palhoca'
    SELECT translate('abcd', 'a', ''); -- 'bcd'
    SELECT translate('abcd', 'a', 'zy'); -- 'zbcd'
    SELECT translate('abcd', 'ac', 'z'); -- 'zbd'
    SELECT translate('abcd', 'aac', 'zq'); -- 'zbd'
Unicode functions
  • normalize(string) → varchar

    Description: Returns a standard string in NFC format.

    select normalize('e');
     _col0 
    -------
     e     
    (1 row)
  • normalize(string, form) → varchar

    Description: Unicode allows you to write the same character in different bytes. For example, é consists of 0xC3 and 0xA9, and consists of 0x65, 0xCC, and 0x81.

    normalize() returns a standard string based on the Unicode standard formats (including NFC, NFD, NFKC, and NFKD) specified by the parameter format. If no parameter format is specified, NFC is used by default.

    select to_utf8('é');
     _col0 
    -------
     c3 a9 
    (1 row)
     
    select to_utf8('é');
      _col0   
    ----------
     65 cc 81 
    (1 row)
     
    select normalize('é',NFC)=normalize('é',NFC);
     _col0 
    -------
     true  
    (1 row)
  • to_utf8(string) → varbinary

    Description: Encodes a string into a UTF-8 string.

    select to_utf8('panda');
         _col0      
    ----------------
     70 61 6e 64 61 
    (1 row)
  • from_utf8(binary) → varchar

    Description: Encodes a binary string into a UTF-8 string. An invalid UTF-8 sequence will be replaced by the Unicode character U+FFFD.

    select from_utf8(X'70 61 6e 64 61');
     _col0 
    -------
     panda 
    (1 row)
  • from_utf8(binary, replace) → varchar

    Description: Encodes a binary string into a UTF-8 string. An invalid UTF-8 sequence will be replaced by the replace parameter. The value of the replace parameter must be a single character or empty to prevent invalid characters from being removed.

    select from_utf8(X'70 61 6e 64 61 b1','!');
     _col0  
    --------
     panda! 
    (1 row)

We use cookies to improve our site and your experience. By continuing to browse our site you accept our cookie policy. Find out more

Feedback

Feedback

Feedback

0/500

Selected Content

Submit selected content with the feedback