【发布时间】:2020-07-20 23:01:47
【问题描述】:
我正在尝试为欧洲国家编写一个动态的代码,以根据某个国家/地区捕获适当的价格。我正在尝试提取标价小于 4000 的数据,但想添加一条语句,如果货币以瑞典克朗为单位,那么我想将该标价乘以 10,然后如果它小于 4000,我想包括它。对于其他货币,只需按照货币代码 EUR、GBP 和 CHF 的标价计算。
例如,这是我所拥有的,但它无法正常工作:
SELECT
[Country_IBS]
,[Item_Number]
,[Price_List]
,List_Price
,[Currency]
FROM #temp4
WHERE List_Price < 4000
OR (SELECT List_Price * 10 WHERE Currency = 'SEK') < 4000
AND Currency = 'EUR'
OR Currency = 'GBP'
OR Currency = 'CHF'
【问题讨论】:
-
AND 在 OR 之前求值。你需要括号。例如。
AND (Currency = 'EUR' OR Currency = 'GBP' OR Currency = 'CHF')。 (那个也可以写成AND Currency IN ('EUR', 'GBP', 'CHF')。) -
如果您可以比“它无法正常工作”更具体,它会有所帮助。请阅读this,了解一些改进问题的技巧。
标签: sql sql-server tsql select where-clause