我试图弄清楚为什么在此查询中以这种方式使用标签时仍然出现相同的错误。我不断收到语法错误。
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
答案 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,
...