DB2 Select - 用两个字符代码替换STATES

时间:2013-06-27 15:26:59

标签: db2

我有一个用户表,用于存储城市,州和国家以及其他用户属性。这些州存储为加利福尼亚州,阿拉巴马州等。现在我想检索某些记录的用户信息,但状态应该转换为两位数的代码。说'加利福尼亚'应该是'CA'。我该怎么做呢。

我正在考虑用缩写创建状态名称的映射表,然后使用某种替换函数来完成它。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

我可能会做一个这样的表:

CREATE TABLE states (
    abrv CHAR(2),
    name VARCHAR(20)
);

INSERT INTO states VALUES
    ('CA', 'California'),
    ('AL', 'Alabama')
;

然后,你可以加入到表中,得到缩写:

SELECT 
    t.field1,
    t.field2
    s.abrv
FROM your_table t
JOIN states     s
  ON t.state = s.name
WHERE ....