sql - 通过分析第一列中的数据查询以创建新列
问题描述
我在 SQL Server 中工作的一个项目。我有这个数据
第 1 列
床
床
床
PTC
PTC
现在我想要这些数据是在 SQL Server 中,它应该创建两个名为 B.Ed 和 PTC 的新列,并在字段出现在 Column1 时在字段中插入“1”。这就是输出应该如何
我猜测它将通过子查询完成,我试图理解它们但无法理解这个概念。因此,如果您可以帮助我们使用 SQL 查询来实现我在这里想要实现的目标。很抱歉格式化,但我希望你们都明白我的意思。
解决方案
您可以使用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
更新查询后的结果:
推荐阅读
- python - Django:随机查询缓慢 - 尽管进行了优化
- javascript - 我不明白为什么 .splice() 在这里返回一个空数组
- php - 如何重复正则表达式的某些部分
- java - ImageMagick 与版本 7 比较命令问题
- rust - 如何编写具有相同类型但具有不同生命周期的变体的枚举,其中一个是“静态的?
- php - PHP的pthreads扩展中的Socket类的目的是什么
- makefile - 同一配方的多个隐式(或模式)规则
- java - 接受大写和小写字母字符
- r - 如何编写一个函数来一次重命名多个列?
- javascript - Zapier - 切片不是有效的功能?