Aquí, vamos a ver cómo encontrar la string más corta y más larga de una columna de una tabla en una base de datos con la ayuda de consultas SQL. Primero crearemos una base de datos » geeks «, luego crearemos una tabla » amigos » con las columnas » nombre «, » apellido «, » edad «. Luego realizará nuestra consulta SQL en esta tabla para recuperar la string más corta y más larga en una columna.
Para este artículo, usaremos MS SQL Server como nuestra base de datos.
Creación de una base de datos:
Use la siguiente instrucción SQL para crear una base de datos llamada geeks:
CREATE DATABASE geeks;
Usando la base de datos:
USE geeks;
Definición de tabla:
Tenemos la siguiente tabla de empleados en nuestra base de datos geeks :
CREATE TABLE friends( firstName VARCHAR(30) not NULL, lastName VARCHAR(30) not NULL, age INT NOT NULL);
Puede usar la siguiente declaración para consultar la descripción de la tabla creada:
EXEC SP_COLUMNS friends;
Agregar datos a la tabla:
Use la siguiente declaración para agregar datos a la tabla de amigos :
INSERT INTO friends values ('Ajit','Yadav', 20), ('Ajay', 'More', 21), ('Amir', 'Jawadwala', 21), ('Zara', 'Khan', 20), ('Yogesh', 'Vaishnav', 21), ('Ashish', 'Yadav', 21), ('Govind', 'Vaishnav', 22), ('Vishal', 'Vishwakarma', 21);
Para verificar el contenido de la tabla, use la siguiente declaración:
SELECT * FROM friends;
Ahora busquemos el nombre más corto y más largo de la tabla que acabamos de crear utilizando las funciones char_length ( ), min() y max() y la cláusula LIMIT.
El nombre más corto :
Usa la sintaxis ow para encontrar el nombre más corto en la tabla de amigos:
SINTAXIS:
SELECT TOP 1 * FROM<table_name> –Aquí queremos solo una fila por eso TOP 1 *
DÓNDE
len(<columna_string>) =
(SELECT min(len(<string_column>)) FROM<table_name> ) ;
Ejemplo :
SELECT TOP 1 * FROM friends WHERE len(firstName) = (SELECT min(len(firstName)) FROM friends);
Producción :
La fila con el nombre lexicográficamente más corto :
Si hay más de una string de la misma longitud mínima y queremos recuperar, lexicográficamente, la string más corta, podemos hacer lo siguiente:
SINTAXIS:
SELECCIONE TOP 1 * FROM<table_name> – Aquí queremos solo una fila, por eso TOP 1*.
DÓNDE
len(<columna_string>) =
(SELECTmin(len(<string_column>)) FROM <table_name> )
ORDENAR POR <nombre_columna>; –En este caso column_name sería firstName.
Ejemplo :
SELECT TOP 1 * FROM friends WHERE len(firstName) = (SELECT min(len(firstName)) FROM friends) ORDER BY firstname;
Producción :
La fila con el nombre de pila más largo :
SINTAXIS:
SELECCIONE PRINCIPALES 1* DESDE<table_name>
DÓNDE
len(<columna_string>) =
(SELECT max(len(<string_column>)) FROM <table_name> );
Ejemplo :
SELECT TOP 1 * FROMfriends WHERE len(firstName) = (SELECT max(len(firstName)) FROMfriends);
Producción :
La fila con el primer nombre lexicográficamente más largo :
SINTAXIS:
SELECCIONE PRINCIPALES 1* DESDE<table_name>
DÓNDE
len(<columna_string>) =
(SELECCIONE max(len(<string_column>)) from <table_name> )
ORDENAR POR <string_columna>; –aquí ordenaríamos los datos por nombre.
Ejemplo :
SELECT TOP 1* FROM friends WHERE len(firstName) = (SELECT max(len(firstName)) FROM friends) ORDER BY firstName;
Producción :