Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何找到MA并将其转换为马萨诸塞州,并将其放入名为“州名”的列中_Sql_Oracle Sqldeveloper - Fatal编程技术网

Sql 如何找到MA并将其转换为马萨诸塞州,并将其放入名为“州名”的列中

Sql 如何找到MA并将其转换为马萨诸塞州,并将其放入名为“州名”的列中,sql,oracle-sqldeveloper,Sql,Oracle Sqldeveloper,对于我的班级,我们有一个表格,其中各州被列为它们的缩写,我需要列出完整的州名和缩写,但我不确定如何让MA到马萨诸塞州。我不确定我会用什么把它变成我需要的东西。任何帮助都很好,谢谢! 这是一个包含ZIP、CITY、STATE的表。您可以尝试以下case语句(假设您没有包含完整版本的列): 应该有另一个包含缩写和全名的表格。然后您将加入这些表。例如: create table full_state (state varchar2(2) constraint pk_fu

对于我的班级,我们有一个表格,其中各州被列为它们的缩写,我需要列出完整的州名和缩写,但我不确定如何让MA到马萨诸塞州。我不确定我会用什么把它变成我需要的东西。任何帮助都很好,谢谢!
这是一个包含ZIP、CITY、STATE的表。

您可以尝试以下case语句(假设您没有包含完整版本的列):


应该有另一个包含缩写和全名的表格。然后您将加入这些表。例如:

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;

另一种选择是“硬编码”这些名称(但这很可能是错误的)。您可以使用
大小写
解码

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,
  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