0

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

我正在考虑为带有缩写的州名称创建一个映射表,然后使用某种替换函数来完成它。

有任何想法吗 ?

4

1 回答 1

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 ....
于 2013-06-27T16:19:08.007 回答