- 
                Notifications
    You must be signed in to change notification settings 
- Fork 435
Strings
        Rene Saarsoo edited this page Apr 18, 2025 
        ·
        20 revisions
      
    SQL standard supports single-quoted strings '..' with repeated quote '' used for escaping.
The real world implementations have lots of variation:
- 
BigQuery:
- 
"..",'..',"""...""",'''..'''(backslash\used for escaping)
- 
R"..",r'''..'''denotes raw strings (backslashes not used for escaping)
- 
B"..",b'''..'''denotes binary strings (backslashes not used for escaping)
- 
RB"..",br'''..'''the same as above, raw and binary (backslashes not used for escaping)
 
- 
- 
DB2:
- 
'..'(two single quotes''are used for escaping)
- 
X'..'a hex string (no escaping)
- 
G'..',N'..'a graphic string
- 
BX'..'a binary hex string (no escaping)
- 
GX'..'a graphic hex string (no escaping)
- 
UX'..'a Unicode hex string / UCS-2 graphic string (no escaping)
- 
U&'..'a Unicode string (two single quotes''are used for escaping)
 
- 
- 
DB2i: The same as DB2, but U&'..'seems to be not supported.
- 
DuckDB:
- 
'..'(two single quotes''are used for escaping)
- 
E'..',e'..'string with C-style escapes (backslash\or repeated single-quote''used for escaping)
- 
$$..$$,$delim$..$delim$dollar-quoted string with optional custom delimiters
- 
B'..',b'..'bit string
- 
X'..',x'..'hex string
- Also two strings literals separated by newline are treated as implicitly concatenated.
 
- 
- 
Hive: '..',".."(backslash\used for escaping)
- 
MariaDB:
- 
'..',".."2 (backslash\1 or repeated single-quote''used for escaping)
- 
x'..',X'..'hex string6
- 
b'..',B'..'a binary string6
 
- 
- 
MySQL:
- 
'..',".."2 (backslash\1 or repeated quote (''or"") used for escaping)
- 
x'..',X'..'hex string6
- 
N'..',n'..'a string using a natural character set6
 
- 
- 
N1QL: ".."(backslash\used for escaping)
- 
PL/SQL:
- 
'..'(two single quotes''are used for escaping)
- 
N'..',n'..'a string using a natural character set
- 
Q'x..x',q'x..x'wherexis a custom delimiter character
- 
q'{..}',q'[..]',q'<..>',q'(..)'special handling for certain delimiters in above syntax
 
- 
- 
PostgreSQL:
- 
'..'(two single quotes''are used for escaping)
- 
E'..',e'..'string with C-style escapes (backslash\or repeated single-quote''used for escaping)
- 
U&'..',u&'..'string with unicode escapes
- 
$$..$$,$delim$..$delim$dollar-quoted string with optional custom delimiters
- 
B'..',b'..'bit string
- 
X'..',x'..'hex string
 
- 
- 
Redshift: '..'(two quotes''are used for escaping)
- SingleStoreDB:5
- 
'..',".."(backslash\or repeated quote (''or"") used for escaping)
- 
x'..',X'..'hex string6
- 
b'..',B'..'a binary string6
 
- 
- 
Snowflake:
- 
'..'(backslash\or repeated quote''used for escaping)
- 
$$..$$(no escaping)
 
- 
- 
Spark:
- 
'..',".."(backslash\used for escaping)
- 
r'..',r"..",R'..',R".."raw string (no escaping)
- 
X'..',X".."hex string
 
- 
- 
SQLite:
- 
'..', (".."4) (two quotes''are used for escaping)
- 
X'..',x'..'hex string
 
- 
- 
TiDB:
- 
'..',".."2 (backslash\1 or repeated quote (''or"") used for escaping)
- 
x'..',X'..'hex string6
- 
N'..',n'..'a string using a natural character set6
 
- 
- 
Transact-SQL:
- 
'..'(two single quotes''are used for escaping)
- (".."3)
- 
N'..'(N".."3) unicode strings
 
- 
- 
Trino:
- 
'..'(two single quotes''are used for escaping)
- 
X'..',x'..'hex string
- 
U&'..',u&'..'string with unicode escapes (two single quotes''are used for escaping)
 
- 
- unless the SQL_MODE has been set to NO_BACKSLASH_ESCAPES.
- unless ANSI_QUOTES mode is enabled.
- if the QUOTED_IDENTIFIER option has been set OFF.
- SQLite sometimes bends its quoting rules. It treats double-quoted identifiers as strings when they appear in the context where strings are expected, but identifiers are not.
- Tested SingleStoreDB manually. Haven't found any actual documentation about string syntax.
- Only single-quoted versions are supported.