我有一个用户表,用于存储城市,州和国家以及其他用户属性。这些州存储为加利福尼亚州,阿拉巴马州等。现在我想检索某些记录的用户信息,但状态应该转换为两位数的代码。说'加利福尼亚'应该是'CA'。我该怎么做呢。
我正在考虑用缩写创建状态名称的映射表,然后使用某种替换函数来完成它。
有什么想法吗?
答案 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 ....