Partager via


TypeSTRING

S’applique à :case marquée oui Databricks SQL case marquée oui Databricks Runtime

Le type prend en charge des séquences de caractères de toute longueur supérieure ou égale à 0.

Syntaxe

STRING

Littéraux

[r|R]'c [ ... ]' [...]
  • r ou R

    S’applique à :coche marquée oui Databricks SQL oui coché Databricks Runtime 10.4 LTS et versions ultérieures

    Préfixe facultatif indiquant un littéral brut.

  • c

    N’importe quel caractère du jeu de caractères Unicode.

Les séquences d’échappement suivantes sont reconnues dans des littéraux de chaîne réguliers (sans le préfixe r) et remplacées en fonction des règles suivantes :

  • \0 ->\u0000, caractère Unicode avec le code 0 ;
  • \b ->\u0008, retour arrière ;
  • \n ->\u000a, saut de ligne ;
  • \r ->\u000d, retour chariot ;
  • \t ->\u0009, tabulation horizontale ;
  • \Z ->\u001A, substituer ;
  • \% ->\% ;
  • \_ ->\_ ;
  • \<other char> -><other char>, ignorer la barre oblique et laisser le caractère tel quel.

Si la chaîne est précédée de r, il n’y a pas de caractère d’échappement.

Le classement inhérent d’un STRING type est hérité du contexte dans lequel il est utilisé :

  • Les chaînes produites par les fonctions dérivent le classement des arguments d’entrée de la fonction.
  • Dans un CREATE ou ALTER d’un TABLE, VIEW ou FUNCTION, le classement par défaut correspond au classement par défaut de ce TABLE, VIEW ou FUNCTION.
  • Dans le contexte d’un niveau supérieur de UPDATE, DELETE, INSERT, MERGE ou instruction de requête, le classement par défaut est UTF8_BINARY.

Pour le classement qui ignore les espaces de fin, utilisez la clause COLLATE UTF8_BINARY_RTRIM.

Pour plus d’informations, consultez les règles d’ordre de tri.

Chaînage de littéraux

S’applique à :check marqué oui Databricks Runtime 18.0 et versions ultérieures

Vous pouvez chaîner des littéraux de chaîne directement sans avoir besoin d’utiliser une fonction concat ou un opérateur ||. Ceci est pratique pour :

  • décomposer les littéraux longs en plusieurs lignes
  • Combinez des littéraux de chaîne et des marqueurs de paramètre de chaîne là où vous ne pouvez pas utiliser d’expressions, par exemple dans une clause de table LOCATION, OPTIONS ou COMMENT. Par exemple, une table LOCATION, une OPTIONS, ou COMMENT une clause.

Remarque

Bien que vous puissiez utiliser des guillemets doubles (") à la place de guillemets simples (') pour délimiter un littéral de chaîne, cette méthode est déconseillée dans la mesure où elle n’est pas conforme à la norme SQL.

Avertissement

Certaines interfaces clientes effectuent des substitutions de macros sur des chaînes avant de les envoyer à l’analyseur SQL. Par exemple, dans un notebook Databricks, le signe $ (dollar) introduit un widget et doit être placé dans une séquence d’échappement avec \$ pour être conservé dans un littéral de chaîne.

Exemples

> SELECT 'Spark';
  Spark

> SELECT CAST(5 AS STRING);
  5

> SELECT 'O\'Connell'
  O'Connell

> SELECT 'Some\nText'
  Some
  Text

> SELECT r'Some\nText'
  Some\nText

> SELECT '서울시'
  서울시

> SELECT ''

> SELECT '\\'
  \

> SELECT r'\\'
  \\

-- From a notbook cell (without a widget 'e' being defined)
> SELECT 'Hou$e', 'Hou\$e', r'Hou$e', r'Hou\$e'
  Hou  Hou$e  Hou  Hou$e

> SELECT COLLATION('hello');
  UTF8_BINARY

> CREATE TEMPORARY VIEW v DEFAULT COLLATION UNICODE_CI
  AS SELECT 'hello' AS c1;
> SELECT COLLATION FOR(c1) FROM v;
  UNICODE_CI

> EXECUTE IMMEDIATE 'SELECT \'Hello \' :loc \'!\'' USING 'world' AS loc;
  Hello World!

> EXECUTE IMMEDIATE
    'SELECT '
        '1 AS one,'
        '2 AS two';
  1 2