将 NUMERIC 转换为 NVARCHAR 的 SQL 查询
在这里,我们将看到如何使用 CAST()、CONVERT() 和 FORMAT() 函数将 MS SQL Server 数据库表中的 NUMERIC 数据转换为 NVARCHAR 数据。
我们将在名为“geeks”的数据库中创建一个人员表。
创建数据库:
CREATE DATABASE geeks;
使用数据库:
USE geeks;
表定义:
我们的 geeks 数据库中有以下 Employee 表:
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.
您可以使用以下语句查询已创建表的描述:
EXEC SP_COLUMNS person;
向表中添加数据:
使用以下语句将数据添加到 person 表中:
INSERT INTO person
VALUES
('Yogesh Vaishnav', 62.5),
('Vishal Vishwakarma', 70),
('Ashish Yadav', 69),
('Ajit Yadav', 71.9);
要验证表的内容,请使用以下语句:
SELECT * FROM person;
现在让我们使用三种不同的方法将 NUMBERIC 值转换为 NVARCHAR。
- 使用 CONVERT()函数:
Syntax: SELECT CONVERT(, );
--DATA_TYPE is the type we want to convert to.
--VALUE is the value we want to convert into DATA_TYPE.
例子:
SELECT 'Weight of Yogesh Vaishnav is ' + CONVERT(NVARCHAR(20), weight)
AS person_weight
FROM person
WHERE name = 'Yogesh Vaishnav';
如您所见,如上所述,小数点右侧总共有 5 位数字。
- 使用 CAST()函数:
Syntax: SELECT CAST( AS );
--DATA_TYPE is the type we want to convert to.
--VALUE is the value we want to convert into DATA_TYPE
例子:
SELECT 'Weight of Ajit Yadav is ' + CAST(weight as NVARCHAR(20))
AS person_weight
FROM person
WHERE name = 'Ajit Yadav';
- 使用 FORMAT()函数:
尽管 FORMAT()函数对于格式化日期时间而不是将一种类型转换为另一种类型很有用,但仍可用于将(或此处格式化)浮点值转换为 STR 值。
Syntax: SELECT FORMAT( , '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.
例子:
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';