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 ( |
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'); |
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.