简体   繁体   English

访问SQL:IFF功能

[英]Access to SQL: IFF function

I have not used access before but I have to convert an access query into SQL so I can write a report in crystal. 我之前没有使用过访问权限,但是我必须将访问查询转换为SQL,这样我才能用水晶编写一个报告。

The query currently uses the IFF function in its select statement which appears to determine what value will be returned depending on the table's value for a particular column. 查询当前在其select语句中使用IFF函数,该函数似乎根据表的特定列的值确定将返回的值。

So for instance if the value is "CR" it should be returned as "credit" and if it's "NCR" it should be returned as "non-credit" 因此,例如,如果值为“CR”,则应将其作为“信用”返回,如果为“NCR”,则应将其作为“非信用”返回

Can I do something like this in SQL? 我可以在SQL中做这样的事吗?

Use a CASE expression. 使用CASE表达式。

CASE WHEN SomeColumn = 'CR' THEN 'credit'
     WHEN SomeColumn = 'NCR' THEN 'non-credit'
END

您可以使用CASE语句:

SELECT CASE WHEN [value] = 'CR' THEN 'Credit' WHEN [Value] = 'NCR' THEN 'non-credit' END

In addition to CASE expressions, Oracle database also supports the DECODE() function. 除CASE表达式外,Oracle数据库还支持DECODE()函数。

SELECT DECODE(value, 'CR', 'Credit', 'NCR', 'Non-Credit') from table;

There are few cases where it may be useful to use a DECODE() function rather than a CASE expression, but I would recommend sticking with CASE. 在极少数情况下,使用DECODE()函数而不是CASE表达式可能有用,但我建议坚持使用CASE。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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