如何找到 MA 并将其变成马萨诸塞州并放入名为州名的列中
How To Find MA and Turn it into Massachusetts and put into column called state name
对于我的 class,我们有一个 table,其中各州被列为其缩写,我需要列出全州名称和缩写,但我不确定如何获得 MA到马萨诸塞州。我不确定我会用什么来将它转化为我需要的东西。任何帮助都会非常感谢!
它是包含 ZIP、CITY、STATE 的全部 table。
您可以尝试如下的 case 语句(假设您没有完整版本的专栏):
SELECT CASE WHEN state = 'MA' THEN 'Massachusets' END AS state_name
FROM table_name
应该还有另一个 table,其中包含缩写和全名。然后你会 加入 那些 table。例如:
create table full_state
(state varchar2(2) constraint pk_fullstat primary key,
full_state_name varchar2(50) not null
);
insert into full_state (state, full_state_name)
select 'AL', 'Alabama' from dual union all
select 'AK', 'Alaska' from dual union all
...
select 'WY', 'Wyoming' from dual;
然后你
select s.zip, s.city, s.state, t.full_state_name
from state s join full_state t on t.state = s.state;
另一种选择是“硬编码”这些名称(但这很可能是错误的)。您可以为此使用 CASE
或 DECODE
:
select s.zip, s.city, s.state,
case when s.state = 'AL' then 'Alabama'
when s.state = 'AK' then 'Alaska'
...
when s.state = 'MA' then 'Massachusets'
...
when s.state = 'WY' then 'Wyoming'
end as full_state_name
from state s
或
select s.zip, s.city, s.state,
decode(s.state, 'AL', 'Alabama',
'AK', 'Alaska',
...
'WY', 'Wyoming'
) as full_state_name
from state s
如您所见,此选项很糟糕,因为它要求您在所有查询中指定所有州,每次您要获取完整的州名称时。因此 - 为州创建一个新的 table。
对于我的 class,我们有一个 table,其中各州被列为其缩写,我需要列出全州名称和缩写,但我不确定如何获得 MA到马萨诸塞州。我不确定我会用什么来将它转化为我需要的东西。任何帮助都会非常感谢! 它是包含 ZIP、CITY、STATE 的全部 table。
您可以尝试如下的 case 语句(假设您没有完整版本的专栏):
SELECT CASE WHEN state = 'MA' THEN 'Massachusets' END AS state_name
FROM table_name
应该还有另一个 table,其中包含缩写和全名。然后你会 加入 那些 table。例如:
create table full_state
(state varchar2(2) constraint pk_fullstat primary key,
full_state_name varchar2(50) not null
);
insert into full_state (state, full_state_name)
select 'AL', 'Alabama' from dual union all
select 'AK', 'Alaska' from dual union all
...
select 'WY', 'Wyoming' from dual;
然后你
select s.zip, s.city, s.state, t.full_state_name
from state s join full_state t on t.state = s.state;
另一种选择是“硬编码”这些名称(但这很可能是错误的)。您可以为此使用 CASE
或 DECODE
:
select s.zip, s.city, s.state,
case when s.state = 'AL' then 'Alabama'
when s.state = 'AK' then 'Alaska'
...
when s.state = 'MA' then 'Massachusets'
...
when s.state = 'WY' then 'Wyoming'
end as full_state_name
from state s
或
select s.zip, s.city, s.state,
decode(s.state, 'AL', 'Alabama',
'AK', 'Alaska',
...
'WY', 'Wyoming'
) as full_state_name
from state s
如您所见,此选项很糟糕,因为它要求您在所有查询中指定所有州,每次您要获取完整的州名称时。因此 - 为州创建一个新的 table。