[英]SQL selecting specific field with defined values
我有一些查询表,不想对其进行联接,但是我仍然想要字段值。
桌子
表格1
ID Value LookupID
1 1 1
2 2 2
表2
LookupID Result
1 Yes
2 No
我想做类似的事情
SELECT ID, Value, (if LoopupID =1, yes if =2 no)
FROM Table1
而不是加入。 我之前已经做过,但是我不记得我用来实现这个目的的命令/语法。 我试图避免使用联接,因为这会使查询花费更长的时间才能运行。 只需在字符串中放入3-4个值,因此将代码硬编码到查询中并不困难。
尝试这个:
SELECT ID, Value, case when LoopupID =1 then 'yes' else 'no' end as result
FROM Table1
只需在此处添加更多信息... case语法也适用于三个或更多值。 另外,您可以用“ as”命名结果列,该名称将在case子句的“ end”之后。
像这样:
case
when LookupID = 1 then 'Yes'
when LookupID = 2 then 'Maybe'
else 'No'
end as YesNoMaybeColumn1
请注意,您可能不想在“ then”值内进行任何子查询,因为这可能效果不佳。 不过,它可能已经过优化-您可以尝试一下,看看结果如何。
您的联接开始不快的原因可能是由于表没有正确设置方便的索引。 如果索引正确,这样的查找表联接通常应该非常快。
尝试
SELECT t1.ID, t1.Value, t2.Result FROM Table1 t1, Table2 t2
WHERE t1.LookupID = t2.LookupID
ORDER BY t1.ID
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.