首页 > 解决方案 > 如何将我的 Excel If 语句转换为 SQL 查询

问题描述

我在将我的 excel if 语句转换为 CASE 子句时遇到了一个小问题。贝娄我已经发布了我当前的 SQL 语句和我试图适应的 IF 语句。理想情况下,我希望它位于 Where 子句中,但如果我需要另一列,我会接受。以粗体突出显示的是不同的标题。

由于我的 where 子句的设置方式,这意味着我只能得到一半的结果

IF 语句是=IF(PD="AC","S",IF(PD="CS","S",IF(PD="CA","S",IF(**PT="SS","S"," ")**)))

当前 SQL

SELECT 

AEOrdersReceivedCurrentQuarter.`Order Company`
, AEOrdersReceivedCurrentQuarter.`Sop Order Number`
, AEOrdersReceivedCurrentQuarter.`Order Date`
, AEOrdersReceivedCurrentQuarter.`Order Method`
, AEOrdersReceivedCurrentQuarter.`Payment Method`
, AEOrdersReceivedCurrentQuarter.`Product Type`
, AEOrdersReceivedCurrentQuarter.`Product Sub Type`
, AEOrdersReceivedCurrentQuarter.`Product Description`
, AEOrdersReceivedCurrentQuarter.`Quantity Ordered`
, AEOrdersReceivedCurrentQuarter.`Product Item Value`
, AEOrdersReceivedCurrentQuarter.`Order Count`
, AEOrdersReceivedCurrentQuarter.`Order Item Narrative`
, AEOrdersReceivedCurrentQuarter.`Product Group`
, AEOrdersReceivedCurrentQuarter.`Product Category`

FROM AEOrdersReceivedCurrentQuarter.csv AEOrdersReceivedCurrentQuarter

WHERE 
CASE WHEN AEOrdersReceivedCurrentQuarter.`Product Type` = 'Studio Services' THEN 'Studio Services'
CASE WHEN AEOrdersReceivedCurrentQuarter.`Product Description` IN ('Artwork Charge','Creative Services','Creative Agency','Studio Services') THEN 'Studio Services'
ELSE ' '
End

标签: sqlif-statementcasewherewhere-clause

解决方案


你在问什么不是很清楚。您是否想以某种方式通过IF语句限制记录?

case可能看起来像这样:

where case 
        when PT='SS' then 'S'
        when PD in ('AC', 'CS', 'CA') then 'S'
        else ' '
      end  = 'S'

推荐阅读