Aquí veremos cómo convertir datos NUMÉRICOS a datos NVARCHAR en una tabla de base de datos de MS SQL Server utilizando las funciones CAST(), CONVERT() y FORMAT().
Crearemos una tabla de personas en una base de datos llamada «geeks».
Creación de la base de datos:
CREATE DATABASE geeks;
Uso de la base de datos:
USE geeks;
Definición de tabla:
Tenemos la siguiente tabla de empleados en nuestra base de datos geeks:
CREATE TABLE person( id INT IDENTITY(1,1) PRIMARY KEY, name VARCHAR(30) NOT NULL, weight NUMERIC(10,5) NOT NULL); --Here NUMERIC(10,5) says there should be total 10 digits given that 5 digits would be --to the right of the decimal point.
Puede usar la siguiente declaración para consultar la descripción de la tabla creada:
EXEC SP_COLUMNS person;
Agregar datos a la tabla:
Use la siguiente declaración para agregar datos a la tabla de personas:
INSERT INTO person VALUES ('Yogesh Vaishnav', 62.5), ('Vishal Vishwakarma', 70), ('Ashish Yadav', 69), ('Ajit Yadav', 71.9);
Para verificar el contenido de la tabla, use la siguiente declaración:
SELECT * FROM person;
Ahora vamos a convertir valores NUMÉRICOS a NVARCHAR usando tres métodos diferentes.
- Usando la función CONVERTIR():
Syntax: SELECT CONVERT(<DATA_TYPE>, <VALUE>); --DATA_TYPE is the type we want to convert to. --VALUE is the value we want to convert into DATA_TYPE.
Ejemplo:
SELECT 'Weight of Yogesh Vaishnav is ' + CONVERT(NVARCHAR(20), weight) AS person_weight FROM person WHERE name = 'Yogesh Vaishnav';
Como puede ver, hay un total de 5 dígitos a la derecha del punto decimal como se mencionó anteriormente.
- Usando la función CAST():
Syntax: SELECT CAST(<VALUE> AS <DATA_TYPE>); --DATA_TYPE is the type we want to convert to. --VALUE is the value we want to convert into DATA_TYPE
Ejemplo:
SELECT 'Weight of Ajit Yadav is ' + CAST(weight as NVARCHAR(20)) AS person_weight FROM person WHERE name = 'Ajit Yadav';
- Usando la función FORMATO():
Aunque la función FORMAT() es útil para formatear fecha y hora y no convertir un tipo en otro, aún se puede usar para convertir (o aquí formatear) el valor flotante en un valor STR.
Syntax: SELECT FORMAT(<VALUE> , 'actual_format'; --actual_format is the format we want to achieve in a string form. --VALUE is the value we want to format according to the actual_format.
Ejemplo:
SELECT 'Weight of Ashish Yadav is ' + FORMAT(weight, '') --'' denotes no formating --i.e simply convert it to a string of characters. AS person_weight FROM person WHERE name = 'Ashish Yadav';