我试图从包含更多货币的表中仅获取以美元和欧元表示的行。
我认为代码应该是这样的:
SELECT IF(CONTRACTS_IN_DIFFERENT_CURRENCIES.CURRENCY='USD',1,0) OR IF(CONTRACTS_IN_DIFFERENT_CURRENCIES.CURRENCY='EUR',1,0
FROM CONTRACTS_IN_DIFFERENT_CURRENCIES
但我知道事情不应该如此。我希望表格类似于美元和欧元的列
最佳答案
您似乎正在尝试使用 Excel 的 IF(condition, true_response, false_response)
语法。 T-SQL 中的等效语法是 CASE WHEN THEN ELSE END
语法:
SELECT
CASE
WHEN CONTRACTS_IN_DIFFERENT_CURRENCIES.CURRENCY ='USD' THEN 1
WHEN CONTRACTS_IN_DIFFERENT_CURRENCIES.CURRENCY='EUR' THEN 1
ELSE 0
END
FROM
CONTRACTS_IN_DIFFERENT_CURRENCIES
这将适用于比您给我们的示例更复杂的查询。另一种方法是,如果同一字段有多个可能的值将返回相同的响应,则为
SELECT
CASE
WHEN CONTRACTS_IN_DIFFERENT_CURRENCIES.CURRENCY IN ('USD','EUR') THEN 1
ELSE 0
END
FROM
CONTRACTS_IN_DIFFERENT_CURRENCIES
但是,这并不是用于仅获取具有某些货币的行的正确语法;之前的答案是
SELECT *
FROM
CONTRACTS_IN_DIFFERENT_CURRENCIES
WHERE
CONTRACTS_IN_DIFFERENT_CURRENCIES.CURRENCY IN ('USD','EUR')
最适合这个。
关于mysql - sql中的简单If Else语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23616470/