首页 > 解决方案 > 根据条件从 PostgreSQL 查询更改在 PBI 中导入的列的值

问题描述

我需要一些帮助,我不精通 SQL,我正在尝试解决一些 PBI 的问题。

情况如下,我的 PBI 连接到 PostgreSQL 以获取其表的数据,但在其中一个表上,我们有一些行分类错误,这导致分析出现一些问题。由于数据库上的行错误,我已经联系了数据库经理,但是他不想更改它们以修复它。所以我必须做点什么。

这是我在 PBI 中的表:

[PBI 中的表格]1

在该表中,“subgrupo”列应仅包含给定“descpro”的“passaros”,但它们被错误分类为“suplementos”。

在 PBI 的电源查询中,我有以下代码从 Postgres 构建上述表

SELECT 
     internalproductid AS CODPRO
    ,ean AS EAN
        ,ncm AS NCM
    ,productdesc AS DESCPRO
    ,suppliername AS FORNECEDOR
    ,CASE
        WHEN UPPER(TRIM(productbrand)) = 'PETZ' THEN 'MP'
                ELSE 'OL'
    END AS MarcaPropria
    ,COALESCE(productbrand,' ')  AS MARCA
    ,CASE
        WHEN productstatus LIKE '1' THEN 'FL'
        ELSE 'AT'
    END AS FORA_LINHA
    ,N1    AS FAMILIA
    ,N2 AS GRUPO
    ,N3 AS SUBGRUPO
    ,buyergroup AS GRUPO_COMPRAS
    ,N4 AS Categoria_Modular
FROM tb_product

我在“N3 AS SUBGRUPO”行需要一些额外的代码,它应该是这样的:

如果 N3 是“SUPLEMENTOS”并且 productdesc 包含“ZOOTEKNA BST”,它应该将 Passaros 作为“SUBGRUPO”,否则它应该按原样带来 N3(就像它现在所做的那样)。

我相信这会修复该表,但是我不知道如何在 Postgres 中构造它。我在想。

   CASE
        WHEN producdesc LIKE '%ZOOTEKNA BST%' 
        AND N3 like 'Suplementos'THEN 'Passaros'
        ELSE N3
    END AS SUBGRUPO

甚至不确定这是否有效并且不确定如何使用通配符(我相信 '%ZOOTEKNA BST%' 是不正确的)。有人可以帮帮我吗?上面的代码会起作用吗?如果不是,我应该怎么做?

标签: sqlpostgresqlpowerquery

解决方案


推荐阅读