Función de subcadena de desplazamiento al rojo

Función de subcadena de desplazamiento al rojo
Subcansa de desplazamiento al rojo es la función utilizada para extraer la subcadena requerida de la cadena existente en función de la posición de inicio y la longitud de la subcadena. El propósito de la función de subcadena es devolver la parte específica de la cadena. Los desarrolladores de bases de datos usan ampliamente esta función en consultas para obtener una parte específica de la cadena. Este blog describe cómo la función de subcadena se puede utilizar de diferentes maneras para consultar los datos del clúster Redshift.

Sintaxis de la función de subcadena

La sintaxis básica y más comúnmente utilizada para la función de subcadena es la siguiente, donde cadena de caracteres es la cadena principal de la que extraeremos subcadenas. El posición inicial es la posición del primer carácter de la subcadena en la cadena principal, y el longitud_Of_CharACTERS es el número de caracteres en la subcadena:

1
subceptor (caracteres_string, start_position, long_of_characters);

O

1
subceptor (caracteres_string desde start_position [para number_characters]);

Además, puede extraer una subcadena de datos binarios utilizando la siguiente sintaxis, donde binary_expression son los datos binarios con el tipo de datos varbyte. El starting_byte es la posición del primer byte de la subcadena extraída de los datos binarios, y el Number_bytes es el número de bytes que la subcontrata incluirá.

Si no especifica el Number_bytes En la función de subcadena, extraerá la subcadena a partir de starting_byte Al final de los datos binarios.

1
subceptor (binary_expression, starting_byte, number_bytes);


O

1
subcadena (binary_expression, starting_byte);

Uso de la función de subcadena

Hasta ahora, hemos discutido la sintaxis de la función de subcadena. En esta sección, veremos cómo se puede usar esta función. Discutamos algunos ejemplos para comprender el funcionamiento de la función de subcadena:

La función de subcadena se puede usar para consultar los datos del clúster de desplazamiento rojo con las consultas selectas. Esta sección utilizará la función de subcadena con la consulta Seleccionar.

La siguiente consulta devolverá la Desplazamiento al rojo Cuando se ejecuta en RedShift:

1
seleccionar subcadena ('AWS RedShift', 5,8);

La siguiente tabla muestra el recuento de caracteres en el AWS Redshift cadena. El espacio entre AWS y desplazamiento al rojo también se cuenta como un personaje.

A W S Riñonal mi D S H I F T
1 2 3 4 5 6 7 8 9 10 11 12

La posición inicial es 5, y el personaje en el quinto recuento es R. La longitud del personaje es 8, lo que significa que a partir de la letra, r, se devolverán ocho caracteres.


Del mismo modo, la siguiente consulta volverá AWS Cuando se ejecuta en RedShift. El primer personaje es A, y el recuento de subcadena total es 3; Por eso devolverá la subcadena de AWS.

1
seleccionar sustring ('AWS RedShift', 1,3);

Si el starting_position+longitud_of_characters es mayor que el número total de caracteres en el cadena de caracteres, El cambio rojo devolverá el valor que comienza desde la posición inicial al final de la cadena.

Además, si no se especifica la longitud del carácter, la función de subcadena devuelve el valor que comienza desde la posición inicial hasta el final de la cadena.

1
seleccionar subcadena ('AWS RedShift', 7,8);

O

1
seleccionar sustring ('AWS RedShift', 7);

En cualquier caso, la salida será Desplazamiento, Como se muestra en la figura a continuación:


Si la posición inicial es cero o menor que el valor cero (negativo), la función de subcadena devolverá una subcadena que comienza en el primer carácter del cadena de caracteres con una longitud de starting_position+longitud_of_charaTters-1.

1
seleccionar subcadena ('AWS RedShift',-3,7);

La salida será AWS, Como se muestra en la figura a continuación:


Si el starting_position+longitud_of_charaTters-1 es menor o igual a cero, la función de subcadena devolverá una cadena vacía.

1
seleccionar subcadena ('AWS RedShift',-5,4);

La salida de esta consulta será vacío, Como se muestra en la figura a continuación:


La siguiente consulta creará la AWS_REDSHIFT_SUBSTRING en el clúster de desplazamiento rojo con los atributos especificados:

1
2
3
4
5
6
7
Crear tabla aws_redshift_substring (
S_no int,
Personname Varchar (255)
);

Insertar datos en la tabla utilizando el método de inserción.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
dieciséis
17
18
19
insertar en valores AWS_Rredshift_Substring (1, 'Mr. Dwayne Johnson');
insertar en valores AWS_Rredshift_Substring (2, 'Mr. Vin diesel ');
insertar en AWS_Redshift_Substring Values ​​(3, 'Mr. Will Smith');
insertar en valores AWS_REDSHIFT_SUBSTRING (4, 'Mr. Robert Downey jr.');
insertar en valores AWS_Rredshift_Substring (5, 'Mr. Chris Hemsworth');
insertar en valores AWS_Rredshift_Substring (6, 'Mr. Leonardo DiCaprio ');
insertar en valores AWS_REDSHIFT_SUBString (7, 'Mr. Ryan Reynolds');
insertar en valores AWS_RredShift_Substring (8, 'Mr. Chris Pratt ');
insertar en valores AWS_RredShift_Substring (9, 'Mr. Hugh Jackman ');
insertar en valores AWS_REDSHIFT_SUBSTRING (10, 'Mr. Mark Wahlberg');

Las consultas anteriores insertarán datos en la tabla. Ahora, seleccione los valores de la tabla utilizando la siguiente consulta:

1
Seleccione * de AWS_REDSHIFT_SUBSTRING;
S_NO nombre
1 Señor. Dwayne Johnson
2 Señor. Vin diesel
3 Señor. Will Smith
4 Señor. Robert Downey jr.
5 Señor. Chris Hemsworth
6 Señor. Leonardo DiCaprio
7 Señor. Ryan Reynolds
8 Señor. Chris Pratt
9 Señor. Hugh Jackman
10 Señor. Mark Wahlberg

Ahora, aplique algunas funciones de subcadena en esta tabla. Extraemos solo los nombres, descuidando el título. Para esto, ejecute la siguiente consulta:

1
SELECCIONAR *, SUBSTRING (PersonName, 4) como new_name de AWS_REDSHIFT_SUBSTRING;

Esta consulta devolverá las subcadenas del nombre columna en una nueva columna.

S_NO nombre nuevo nombre
1 Señor. Dwayne Johnson Dwayne Johnson
2 Señor. Vin diesel Vin diesel
3 Señor. Will Smith Will Smith
4 Señor. Robert Downey jr. Robert Downey jr.
5 Señor. Chris Hemsworth Chris Hemsworth
6 Señor. Leonardo DiCaprio Leonardo DiCaprio
7 Señor. Ryan Reynolds Ryan Reynolds
8 Señor. Chris Pratt Chris Pratt
9 Señor. Hugh Jackman Hugh Jackman
10 Señor. Mark Wahlberg Mark Wahlberg


Del mismo modo, podemos obtener sustras de nombre Usando la siguiente consulta de selección junto con la función de subcadena:

1
SELECCIONAR *, SUBSTRING (PERPELNAME DE 1 para 3) como título de AWS_REDSHIFT_SUBSTRING;

Esto extraerá el único título mientras descuida el nombre completo.

S_NO nombre título
1 Señor. Dwayne Johnson Señor.
2 Señor. Vin diesel Señor.
3 Señor. Will Smith Señor.
4 Señor. Robert Downey jr. Señor.
5 Señor. Chris Hemsworth Señor.
6 Señor. Leonardo DiCaprio Señor.
7 Señor. Ryan Reynolds Señor.
8 Señor. Chris Pratt Señor.
9 Señor. Hugh Jackman Señor.
10 Señor. Mark Wahlberg Señor.

Conclusión

Este artículo discutió cómo podríamos usar la función de subcadena para ejecutar consultas en el clúster de desplazamiento rojo. Extraer datos modificados de la base de datos es una gran tarea y se puede realizar utilizando la función de subcadena. El uso de la función de subcadena puede ayudar a evitar la modificación de datos de consulta posterior a la medida, ya que obtiene los datos modificados.