繁体   English   中英

SQL选择具有定义值的特定字段

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM