Sql 如何查询行中是否存在值并将值添加到另一个字段?

Sql 如何查询行中是否存在值并将值添加到另一个字段?,sql,database,ms-access,Sql,Database,Ms Access,我在access上有一个数据库,我想根据他们所在的医院向每行末尾的一列添加一个值。这是一个单独的值。例如,名为“圣詹姆斯医院”的医院在单独的字段中具有id“3”。如何使用查询而不是手动遍历整个数据库? 不是最好的解决方案,但您可以这样做: create table new_table as select id, case when hospital="St. James Hospital" then 3 else null from old_table 或者,更好的选择是创建一个包含hospi

我在access上有一个数据库,我想根据他们所在的医院向每行末尾的一列添加一个值。这是一个单独的值。例如,名为“圣詹姆斯医院”的医院在单独的字段中具有id“3”。如何使用查询而不是手动遍历整个数据库?
不是最好的解决方案,但您可以这样做:

create table new_table as
select id, case when hospital="St. James Hospital" then 3 else null
from old_table
或者,更好的选择是创建一个包含hospital_name和hospital_id列的表。然后,您可以创建一个外键关系,该关系将为您创建映射,并强制执行数据完整性。两个表之间的连接将产生您想要的结果

请在此处阅读:


不是最好的解决方案,但您可以这样做:

create table new_table as
select id, case when hospital="St. James Hospital" then 3 else null
from old_table
或者,更好的选择是创建一个包含hospital_name和hospital_id列的表。然后,您可以创建一个外键关系,该关系将为您创建映射,并强制执行数据完整性。两个表之间的连接将产生您想要的结果

请在此处阅读:


您的问题的答案是加入+更新。我敢肯定,如果你查一下,你会发现下面的链接


您的问题的答案是加入+更新。我敢肯定,如果你查一下,你会发现下面的链接

您可以这样做:

         update yourTable
         set yourFinalColumnWhateverItsNameIs = {your desired value}
         where someColumn = 3
表中的每一行如果在someColumn列中有一个3,则最后一列将设置为所需的值

如果这不是你想要的,请把你的问题说清楚。你是想把医院的名字放在这张桌子上吗?如果是这样,那不是一个好主意,有更好的方法来实现这一点

此外,如果具有特定值(3)的每一行都获得该值,则只需将其添加到另一个(即医院)表中即可。无需在指向Hospitals表的表中的任何位置重复该操作

这里有一个例子来说明我的意思:

假设你有两张桌子

HOSPITALS
id
name
city
state

BIRTHS
id
hospitalid
babysname
gender
mothersname
fathername
只需连接hospitals.id=birtions.hospitalid上的表格,就可以获得婴儿的出生城市,而无需在出生表格中包含city列。

您可以执行以下操作:

         update yourTable
         set yourFinalColumnWhateverItsNameIs = {your desired value}
         where someColumn = 3
表中的每一行如果在someColumn列中有一个3,则最后一列将设置为所需的值

如果这不是你想要的,请把你的问题说清楚。你是想把医院的名字放在这张桌子上吗?如果是这样,那不是一个好主意,有更好的方法来实现这一点

此外,如果具有特定值(3)的每一行都获得该值,则只需将其添加到另一个(即医院)表中即可。无需在指向Hospitals表的表中的任何位置重复该操作

这里有一个例子来说明我的意思:

假设你有两张桌子

HOSPITALS
id
name
city
state

BIRTHS
id
hospitalid
babysname
gender
mothersname
fathername

<>你可以在出生的婴儿出生的城市,而不必在出生表中加入城市专栏,只要加入医院的表格。ID =出生。住院。

< p>检查你的ACCDB文件后,我建议你考虑不同地设置表格。 表医疗卫生专业人员:

ID名字第二名字职位医院ID
1无名氏2
2乔·史密斯公司PI 1
莎拉·约翰逊护士3
表3医院:

hospital\u id hospital
博蒙特1号
第二圣詹姆斯
3莱特肯尼医院
一个关键点是避免在Health_Professionals表中同时存储医院ID和名称。仅存储ID。当需要查看名称时,请使用医院ID连接到Hospitals表并从中获取名称

这种设计的一个有用的副作用是,如果有人拼错了医院的名字,例如“hospital”,你只需要在一个地方纠正这个错误。每当医院被有意更名时,情况也是如此

基于这些表,下面的查询将返回此结果集

ID第二名第一名职位医院\u ID医院
1 Doe John PI 2 St James
3约翰逊萨拉护士3莱特肯尼医院
2史密斯乔公司皮1博蒙特
挑选
hp.ID,
hp。[第二个名称],
惠普[名字],
惠普的位置,
惠普医院id,
h、 医院
从…起
作为hp的医疗专业人员
内联医院为h
在hp.hospital\u id=h.hospital\u id上
订购人
hp。[第二个名称],
惠普[名字];

在检查您的ACCDB文件之后,我建议您考虑以不同的方式设置表。 表医疗卫生专业人员:

ID名字第二名字职位医院ID
1无名氏2
2乔·史密斯公司PI 1
莎拉·约翰逊护士3
表3医院:

hospital\u id hospital
博蒙特1号
第二圣詹姆斯
3莱特肯尼医院
一个关键点是避免在Health_Professionals表中同时存储医院ID和名称。仅存储ID。当需要查看名称时,请使用医院ID连接到Hospitals表并从中获取名称

这种设计的一个有用的副作用是,如果有人拼错了医院的名字,例如“hospital”,你只需要在一个地方纠正这个错误。每当医院被有意更名时,情况也是如此

基于这些表,下面的查询将返回此结果集

ID第二名第一名职位医院\u ID医院
1 Doe John PI 2 St James
3约翰逊萨拉护士3莱特肯尼医院
2史密斯乔公司皮1博蒙特
挑选
hp.ID,
hp。[第二个名称],
惠普[名字],
惠普的位置,
惠普医院id,
h、 医院
从…起
健康_