RIGHT o función escalar STRRIGHT

La función RIGHT devuelve una serie formada por el número especificado de bytes situados más a la derecha de la unidad de serie especificada.

Leer diagrama de sintaxisOmitir el diagrama de sintaxis visualRIGHTSTRRIGHT1( expresión de cadena, entero,CODEUNITS16CODEUNITS32OCTETS)
Notas:

El esquema es SYSIBM.

expresión-serie
Una expresión que especifica la serie de la que se deriva el resultado. La cadena debe ser de cualquier tipo de datos de cadena incorporada. Una subcadena de expresión-cadena es cero o más puntos de código contiguos de expresión-cadena. Un carácter de sustitución parcial en la expresión se sustituye con un espacio en blanco.

La cadena puede contener datos mixtos. Dependiendo de las unidades que se especifiquen para evaluar la función, el resultado no es necesariamente una cadena de caracteres de datos mixtos formada correctamente.

El argumento también puede ser un tipo de datos numérico. El argumento numérico se convierte implícitamente a un tipo de datos VARCHAR.

entero
Una expresión que especifica la longitud del resultado. El valor debe ser un número entero entre 0 y n, donde n es el atributo de longitud de la expresión de cadena, expresado en las unidades que se especifican implícita o explícitamente.

El argumento también puede ser una cadena de caracteres o un tipo de datos de cadena gráfica. La cadena introducida se convierte implícitamente en un valor numérico de DECFLOAT(34), que luego se asigna a un valor INTEGER.

Si se especifica CODEUNITS16 o CODEUNITS32, consulte Determinación del atributo de longitud del resultado final para obtener información sobre cómo calcular el atributo de longitud de la cadena de resultados.

CODEUNITS16, CODEUNITS32 u OCTETS
Especifica la unidad que se utiliza para expresar un número entero. Si string-expression es una cadena de caracteres definida como datos de bits, no se pueden especificar CODEUNITS16 y CODEUNITS32. Si la expresión de cadena es una cadena gráfica, no se pueden especificar OCTETOS. Si string-expression es una cadena binaria, no se pueden especificar CODEUNITS16, CODEUNITS32 y OCTETS.
CODEUNITS16
Especifica que el entero se expresa en términos de unidades de código de UTF-16 e de 16 bits.
CODEUNITS32
Especifica que el entero se expresa en términos de unidades de código de 32 bits e UTF-32.
OCTETS
Especifica que el número entero se expresa en términos de bytes.

Para obtener más información sobre CODEUNITS16, CODEUNITS32 y OCTETS, consulte Especificaciones de unidades de cadena.

La expresión de cadena se rellena efectivamente a la derecha con el número necesario de caracteres de relleno para que la subcadena especificada de la expresión de cadena siempre exista. El esquema de codificación de los datos determina el carácter de relleno:

  • Para datos ASCII SBCS o datos ASCII mixtos, el carácter de relleno es X'20 '.
  • Para datos ASCII DBCS, el carácter de relleno depende del CCSID; por ejemplo, para japonés (CCSID 301) el carácter de relleno es X'8140', mientras que para chino simplificado es X'A1A1'.
  • Para datos EBCDIC SBCS o datos mixtos EBCDIC, el carácter de relleno es X'40 '.
  • Para datos EBCDIC DBCS, el carácter de relleno es X'4040 '.
  • Para datos Unicode SBCS o datos Unicode mixtos ( UTF-8 ), el carácter de relleno es X'20 '.
  • Para datos e UTF-16 es (datos Unicode DBCS), el carácter de relleno es X'0020'.
  • Para datos binarios, el carácter de relleno es X'00 '.

El resultado de la función es una cadena de longitud variable con un atributo de longitud que es el mismo que el atributo de longitud de la expresión de cadena y un tipo de datos que depende del tipo de datos de la expresión de cadena :

  • VARBINARY si expresión-serie es BINARY o VARBINARY
  • VARCHAR si la expresión de cadena es CHAR o VARCHAR
  • CLOB si la expresión de cadena es CLOB
  • VARGRAPHIC si la expresión de cadena es GRAPHIC o VARGRAPHIC
  • DBCLOB si la expresión de cadena es DBCLOB
  • BLOB si expresión-serie es BLOB

La longitud real del resultado se determina a partir de entero.

El resultado puede ser nulo; si cualquier argumento es nulo, el resultado es el valor nulo.

El CCSID del resultado es el mismo que el de la expresión de cadena.

Inicio del cambio

Notas

Sintaxis alternativa:
FL 506 STRRIGHT es sinónimo de RIGHT.
fin del cambio

ejemplos

Ejemplo 1 : Supongamos que la variable de host ALPHA tiene un valor de 'ABCDEF'. La siguiente declaración devuelve el valor «DEF», que son los tres caracteres situados más a la derecha en ALPHA.
   SELECT RIGHT(ALPHA,3)
     FROM SYSIBM.SYSDUMMY1;
Ejemplo 2 : La siguiente declaración devuelve una cadena de longitud cero.
   SELECT RIGHT('ABCABC',0)
     FROM SYSIBM.SYSDUMMY1;
Ejemplo 3 : FIRSTNME es una columna VARCHAR(12) en la tabla T1. Cuando FIRSTNME tiene la cadena de 6 caracteres «Jürgen» como valor:
   Function ...                         Returns ...
   RIGHT(FIRSTNME,5,CODEUNITS32)        'ürgen'  -- x'C3BC7267656E'
   RIGHT(FIRSTNME,5,CODEUNITS16)        'ürgen'  -- x'C3BC7267656E'
   RIGHT(FIRSTNME,5,OCTETS)             ' rgen'  -- x'207267656E'  A truncated string
Inicio del cambioEjemplo 4 : En el siguiente ejemplo, la última invocación de la función RIGHT devuelve un carácter sustituto parcial:
   Function ...                         Returns ...
   RIGHT('Jürgen',5,CODEUNITS32)        'ürgen'       -- x'C3BC7267656E'
   RIGHT('Jürgen',5,CODEUNITS16)        'ürgen'       -- x'C3BC7267656E'
   RIGHT('Jürgen',5,OCTETS)             ' rgen'       -- x'207267656E'  A truncated string
   HEX(RIGHT('Jürgen',5))               x'BC7267656E' -- A partial character followed by 'rgen'
fin del cambio