如何在此查询的此部分中使用标签?

时间:2019-10-15 09:37:59

标签: sql postgresql

我试图弄清楚为什么在此查询中以这种方式使用标签时仍然出现相同的错误。我不断收到语法错误。

SELECT idint, elVal.idinterventovalore, concat(cast(elVal.idinterventovalore as varchar(5)) , '=' , valore as label, 1 like value) -- , elVal.IDInterventoRagg
FROM cch.pats_cch_interventi_valori val 
    INNER JOIN cch.pats_cch_interventielencovalori elVal ON val.idinterventoragg = elVal.idinterventoragg AND val.idinterventovalore = elVal.idinterventovalore 
WHERE elVal.idinterventoragg like '%DiaValvulopatiaSede%' AND elVal.IDTipo='I'
ORDER BY idint, elVal.idinterventovalore;

-以下是我正在调试的源代码-

SELECT IDInt, 
       elVal.IDInterventoValore, 
       cast(elVal.IDInterventoValore as varchar(5)) + '=' + Valore as label, 
       1 as [value] -- , elVal.IDInterventoRagg 
FROM AppManager_BI.PATS_CCH_Interventi_Valori val 
  INNER JOIN AppManager_BI.PATS_CCH_InterventiElencoValori elVal 
          ON val.IDInterventoRagg = elVal.IDInterventoRagg 
         AND val.IDInterventoValore = elVal.IDInterventoValore 
WHERE elVal.IDInterventoRagg like 'DiaVasculopatiaPerifericaSede' 
  AND elVal.IDTipo='I' 
ORDER BY IDInt, elVal.IDInterventoValore

2 个答案:

答案 0 :(得分:0)

尽管我不使用postgresql,但我知道您在concat中使用别名是无效的。 尝试下面的代码。

SELECT idint, 
           elVal.idinterventovalore, 
           concat(cast(elVal.idinterventovalore as varchar(5)) , '=' , valore, 1) -- , elVal.IDInterventoRagg
      FROM cch.pats_cch_interventi_valori val 
INNER JOIN cch.pats_cch_interventielencovalori elVal 
        ON val.idinterventoragg = elVal.idinterventoragg 
       AND val.idinterventovalore = elVal.idinterventovalore 
     WHERE elVal.idinterventoragg like '%DiaValvulopatiaSede%'
       AND elVal.IDTipo='I'
  ORDER BY idint,
           elVal.idinterventovalore;

希望这会对您有所帮助。

答案 1 :(得分:0)

鉴于原始查询(大概是T-SQL),您可能想要:

SELECT IDInt, elVal.IDInterventoValore, 
       concat(elVal.IDInterventoValore, '=', Valore) as label, 
       1 as value,
...

使用concat()时不需要强制转换值

如果您要正确处理两个列中可能存在的空值,则concat_ws()可能是更好的选择:

SELECT IDInt, elVal.IDInterventoValore, 
       concat_ws('=', elVal.IDInterventoValore, Valore) as label, 
       1 as value,
...