首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以创建一个从列中的整数值到它们在sql中表示的文本值的映射吗?

我可以创建一个从列中的整数值到它们在sql中表示的文本值的映射吗?
EN

Stack Overflow用户
提问于 2016-08-14 23:42:39
回答 1查看 31关注 0票数 0

我有一个满是交通事故数据的表,其中包含诸如'Vehicle_Manoeuvre‘之类的列标题,其中包含整数,例如,13表示导致事故的车辆操作是’超越正在行驶的车辆‘。

我知道从整数到文本的映射,因为我有一个包含这些数据的(相当大的) excel文件。

我想知道的一个例子是涉及这种操作的事故的百分比,但我不想每次编写查询时都必须打开excel文件并找到整数到文本的映射。

我可以手动更改所有列的整数(使用每列的所有可能映射编写查询,将它们添加为新列,然后删除原始列),但这可能需要很长时间。

是否可以创建某种类型的变量(例如,第一列是整数,第二列是映射文本的数组),SQL可以使用它来理解文本与整数的关系,从而使我可以编写以下查询:

代码语言:javascript
复制
SELECT COUNT(Vehicle_Manoeuvre) FROM traffictable WHERE Vehicle_Manoeuvre='overtaking moving vehicle';

而不是:

代码语言:javascript
复制
SELECT COUNT(Vehicle_Manoeuvre) FROM traffictable WHERE Vehicle_Manoeuvre=13;

即使表中的数据仍然是整数形式?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-14 23:46:26

您可以使用Maneeuvres引用表执行此操作:

代码语言:javascript
复制
create table Manoeuvres (
    ManoeuvreId int primary key,
    Name varchar(255) unique
);

insert into Manoeuvres(ManoeuvreId, Name)
    values (13, 'Overtaking');

如果您知道13有特殊的含义,那么您甚至可能已经有了这样一个表。

然后使用join

代码语言:javascript
复制
SELECT COUNT(*)
FROM traffictable tt JOIN
     Manoeuvres m
     ON tt.Vehicle_Manoeuvre = m.ManoeuvreId
WHERE m.name = 'Overtaking';
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38943829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档