sql - 使用 CASE 表达式时如何解决此查询中的错误?
问题描述
首先我得到一个错误,因为零是一个整数,它不能与字符串进行比较,其次,当我更正使用 varchar 时我得到一个错误
case when ECO.AlteratoRilasciamentoVentricolare = 0
then '0=No'
else '1=Si' end as VentricoloSinistro_AlteratoRilasciamentoVentricolare,
case when ECO.PatternMitralicoPseudonormaleReversibileVentricoloSinistro = 0
then '0=No'
else '1=Si' end as VentricoloSinistro_PatternMitralicoPseudonormaleReversibile,
case when ECO.PatternMitralicoPseudonormaleIrreversibileVentricoloSinistro = 0
then '0=No'
else '1=Si' end as VentricoloSinistro_PatternMitralicoPseudonormaleIrreversibile,
case when ECO.PatternRestrittivoVentricoloSinistro = 0
then '0=No'
else '1=Si' end as VentricoloSinistro_PatternRestrittivo,
(SELECT cast(IDInterventovalore as varchar(5)) || '=' || valore
FROM cch.pats_cch_interventi_valori val
解决方案
case when ECO.AlteratoRilasciamentoVentricolare = 0::varchar
then '0=No'
else '1=Si' end as VentricoloSinistro_AlteratoRilasciamentoVentricolare,
case when ECO.PatternMitralicoPseudonormaleReversibileVentricoloSinistro = 0::varchar
then '0=No'
else '1=Si' end as VentricoloSinistro_PatternMitralicoPseudonormaleReversibile,
case when ECO.PatternMitralicoPseudonormaleIrreversibileVentricoloSinistro = 0::varchar
then '0=No'
else '1=Si' end as VentricoloSinistro_PatternMitralicoPseudonormaleIrreversibile,
case when ECO.PatternRestrittivoVentricoloSinistro = 0::varchar
then '0=No'
else '1=Si' end as VentricoloSinistro_PatternRestrittivo,
(SELECT cast(IDInterventovalore as varchar(5)) || '=' || valore
FROM cch.pats_cch_interventi_valori val
如上所述将您的数字转换为 varchar,或者简单地将 tic 放在它们周围,例如:“case when fubar='0'”。
您的一张表可能有一个 varchar 列而不是一个数字。如果您可以选择更新表结构,我建议您将表设置为数字。
推荐阅读
- html - 如何使我的内容水平显示?
- python - 可以结合 python 方法 isupper 和 isumeric/isdigits 吗?我的列表中没有看到什么?
- python - Django formview form_valid,表单没有属性`instance`
- r - 将循环应用于 r 中的列表列表
- reactjs - TypeError:无法读取 ReactJS 表单字段中未定义的属性“名称”
- python-3.x - 调用函数时的变量
- ios - rn-fetch-blob - 对于没有扩展名 pdf 的文件,idownload 无法在 ios 上运行
- rust - 当我知道没有更多对其当前内容的引用时,如何对切片进行变异?
- three.js - Threejs存储和加载相机位置和方向
- docker - 无法使用 Serilog 在 Docker 上启动 .NET Core 3.1 Worker 服务