我有一些查找表,我不想对这些表执行联接,但我仍然希望字段值。
表格
Table1
ID Value LookupID
1 1 1
2 2 2Table2
LookupID Result
1 Yes
2 No我想做这样的事
SELECT ID, Value, (if LoopupID =1, yes if =2 no)
FROM Table1而不是加入。我以前已经这样做过,但是我不记得我用什么命令/语法来实现这一点。我试图避免使用join,因为它会使查询运行的时间大大延长。只有3-4个值需要放在字符串中,所以硬代码进入查询并不困难。
发布于 2014-02-12 13:12:21
试试这个:
SELECT ID, Value, case when LoopupID =1 then 'yes' else 'no' end as result
FROM Table1发布于 2014-02-12 17:30:37
只是在这里增加一些信息..。case语法也适用于三个或更多个值。此外,还可以用"as“命名结果列,该名称将在case子句中的"end”之后。
如下所示:
case
when LookupID = 1 then 'Yes'
when LookupID = 2 then 'Maybe'
else 'No'
end as YesNoMaybeColumn1请注意,您可能不希望在“那时”的值中执行任何子查询,因为这可能不会很好地执行。不过,它可能会被优化--你可以试一试,看看结果是什么。
但是,您的连接开始时不快的原因可能是表没有正确设置索引。如果索引正确的话,像这样的查找表联接通常应该是非常快的。
发布于 2014-02-12 13:21:07
试一试
SELECT t1.ID, t1.Value, t2.Result FROM Table1 t1, Table2 t2
WHERE t1.LookupID = t2.LookupID
ORDER BY t1.IDhttps://stackoverflow.com/questions/21728797
复制相似问题