我在一个项目的SQL Server上工作。我有这个数据
B.Ed
B.Ed
B.Ed
PTC
PTC
现在我想要的数据是,在SQL Server中它应该创建两个名为B.Ed和PTC的新列,并插入" 1"在Column1中出现的字段中。这就是输出应该如何
我猜测它将用子查询完成,我试图理解它们但却无法理解这个概念。因此,如果您可以帮助我们使用SQL查询,可以实现我在这里尝试实现的目标。抱歉格式化,但我希望你们都明白我的观点。
答案 0 :(得分:0)
您可以在此处使用案例expression
:
select *, (case when ProfQual_16 = 'B.Ed' then 1 end) as BED,
(case when ProfQual_16 = 'PTC' then 1 end) as PTC
from table t;
答案 1 :(得分:0)
您可以使用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
更新查询后的结果: