首页 > 解决方案 > 通过分析第一列中的数据查询以创建新列

问题描述

我在 SQL Server 中工作的一个项目。我有这个数据

第 1 列

PTC

PTC

现在我想要这些数据是在 SQL Server 中,它应该创建两个名为 B.Ed 和 PTC 的新列,并在字段出现在 Column1 时在字段中插入“1”。这就是输出应该如何 输出

我猜测它将通过子查询完成,我试图理解它们但无法理解这个概念。因此,如果您可以帮助我们使用 SQL 查询来实现我在这里想要实现的目标。很抱歉格式化,但我希望你们都明白我的意思。

标签: sqlsql-server

解决方案


您可以使用case表达式更新现有表

如果您的现有表中已经有了新列,那么您可以直接使用更新语句,否则您可以根据需要添加新列。

ALTER TABLE EducationQualification
ADD BTech VARCHAR(127),MTech VARCHAR(127),

SQL 查询: 由于我在创建表的过程中创建了新列:

CREATE TABLE EducationQualification
(
Qualification VARCHAR(100),
BTech   VARCHAR(100) NULL,
MTech   VARCHAR(100) NULL
)

INSERT INTO EducationQualification
(Qualification,BTech,MTech)
VALUES
('B.Tech',NULL,NULL),('B.Tech',NULL,NULL),('B.Tech',NULL,NULL),('M.Tech',NULL,NULL)

SELECT * FROM EducationQualification

输出:

在此处输入图像描述

UPDATE EducationQualification
SET BTech = CASE
                WHEN Qualification = 'B.Tech' THEN 1
                ELSE NULL
            END,
    MTech = CASE
                WHEN Qualification = 'M.Tech' THEN 1
                ELSE NULL
            END

更新查询后的结果:

在此处输入图像描述


推荐阅读