Sql 导致错误的两个独立案例陈述
在我刚刚Sql 导致错误的两个独立案例陈述,sql,Sql,在我刚刚 CASE obf.field_type WHEN 'Select One' THEN obsc.label ELSE ocd.data END AS value 它成功了。 现在我想添加一个例子,检查ga.bases是否为null,然后使用ga1.bases,如果ga.bases不为null,则使用ga.bases。所以我做了这个声明 CAS
CASE obf.field_type
WHEN 'Select One'
THEN obsc.label
ELSE ocd.data
END AS value
它成功了。
现在我想添加一个例子,检查ga.bases是否为null,然后使用ga1.bases,如果ga.bases不为null,则使用ga.bases。所以我做了这个声明
CASE ga.bases
WHEN ga.bases IS NULL THEN
ga1.bases
ELSE
ga.bases
END
现在,当我把这两者放在一起时,它们的工作原理如下:
CASE obf.field_type
WHEN 'Select One'
THEN obsc.label
ELSE ocd.data
END AS value
CASE ga.bases
WHEN ga.bases IS NULL THEN
ga1.bases
ELSE
ga.bases
END
我得到以下错误:
ERROR: syntax error at or near "CASE"
LINE 12: CASE ga.bases
^
********** Error **********
ERROR: syntax error at or near "CASE"
SQL state: 42601
Character: 298
我不明白为什么会出错,或者我将如何着手解决此问题我想您只需要一个逗号:
(CASE obf.field_type
WHEN 'Select One'
THEN obsc.label
ELSE ocd.data
END) AS value,
(CASE ga.bases
WHEN ga.bases IS NULL
THEN ga1.bases
ELSE ga.bases
END)
我想你只需要一个逗号:
(CASE obf.field_type
WHEN 'Select One'
THEN obsc.label
ELSE ocd.data
END) AS value,
(CASE ga.bases
WHEN ga.bases IS NULL
THEN ga1.bases
ELSE ga.bases
END)
我想你只需要一个逗号:
(CASE obf.field_type
WHEN 'Select One'
THEN obsc.label
ELSE ocd.data
END) AS value,
(CASE ga.bases
WHEN ga.bases IS NULL
THEN ga1.bases
ELSE ga.bases
END)
我想你只需要一个逗号:
(CASE obf.field_type
WHEN 'Select One'
THEN obsc.label
ELSE ocd.data
END) AS value,
(CASE ga.bases
WHEN ga.bases IS NULL
THEN ga1.bases
ELSE ga.bases
END)
两个case语句之间缺少一个逗号 另外,第二个案例看起来有点奇怪。您不能使用这种形式的大小写测试NULL,请尝试以下方法:
CASE
WHEN ga.bases IS NULL THEN ga1.bases
ELSE ga.bases
END
注意,案例
之后没有值
但更容易的是:
COALESCE(ga.bases, ga1.bases)
两个case语句之间缺少一个逗号 另外,第二个案例看起来有点奇怪。您不能使用这种形式的大小写测试NULL,请尝试以下方法:
CASE
WHEN ga.bases IS NULL THEN ga1.bases
ELSE ga.bases
END
注意,案例
之后没有值
但更容易的是:
COALESCE(ga.bases, ga1.bases)
两个case语句之间缺少一个逗号 另外,第二个案例看起来有点奇怪。您不能使用这种形式的大小写测试NULL,请尝试以下方法:
CASE
WHEN ga.bases IS NULL THEN ga1.bases
ELSE ga.bases
END
注意,案例
之后没有值
但更容易的是:
COALESCE(ga.bases, ga1.bases)
两个case语句之间缺少一个逗号 另外,第二个案例看起来有点奇怪。您不能使用这种形式的大小写测试NULL,请尝试以下方法:
CASE
WHEN ga.bases IS NULL THEN ga1.bases
ELSE ga.bases
END
注意,案例
之后没有值
但更容易的是:
COALESCE(ga.bases, ga1.bases)
你忘了在两者之间加逗号了吗?你忘了在两者之间加逗号了吗?你忘了在两者之间加逗号了吗?你忘了在两者之间加逗号了吗?只有在他想要两列时才对,我不确定,因为他只提供了一个别名。如果我只想显示一列,我将如何更改它?可能将两个值串联起来。你还没有说你正在使用什么RDBMS,但是对于mysql来说,
concat(a,b)
或者对于postgres来说,a | | b
可能对你有用。不清楚您是否需要一个值,因为您在第一个案例
之后将作为值
,但如果您将两个值合并在一起(即作为值
将在最后出现),则这是不允许的。合并最终给出了我想要的内容,但它仍然显示了其他两列。第1列=树第2列=驻车合并给我输出I disire,但其他两列仍然存在。只有当他想要两列时,有没有办法去掉另外两列,并且仍然使用COALESCE workCorrect,我不确定,因为他只提供了一个别名。如果我只想显示一列,我将如何更改它?可能会连接这两个值。你还没有说你正在使用什么RDBMS,但是对于mysql来说,concat(a,b)
或者对于postgres来说,a | | b
可能对你有用。不清楚您是否需要一个值,因为您在第一个案例
之后将作为值
,但如果您将两个值合并在一起(即作为值
将在最后出现),则这是不允许的。合并最终给出了我想要的内容,但它仍然显示了其他两列。第1列=树第2列=驻车合并给我输出I disire,但其他两列仍然存在。只有当他想要两列时,有没有办法去掉另外两列,并且仍然使用COALESCE workCorrect,我不确定,因为他只提供了一个别名。如果我只想显示一列,我将如何更改它?可能会连接这两个值。你还没有说你正在使用什么RDBMS,但是对于mysql来说,concat(a,b)
或者对于postgres来说,a | | b
可能对你有用。不清楚您是否需要一个值,因为您在第一个案例
之后将作为值
,但如果您将两个值合并在一起(即作为值
将在最后出现),则这是不允许的。合并最终给出了我想要的内容,但它仍然显示了其他两列。第1列=树第2列=驻车合并给我输出I disire,但其他两列仍然存在。只有当他想要两列时,有没有办法去掉另外两列,并且仍然使用COALESCE workCorrect,我不确定,因为他只提供了一个别名。如果我只想显示一列,我将如何更改它?可能会连接这两个值。你还没有说你正在使用什么RDBMS,但是对于mysql来说,concat(a,b)
或者对于postgres来说,a | | b
可能对你有用。不清楚您是否需要一个值,因为您在第一个案例
之后将作为值
,但如果您将两个值合并在一起(即作为值
将在最后出现),则这是不允许的。合并最终给出了我想要的内容,但它仍然显示了其他两列。第1列=树第2列=驻车合并给我输出I disire,但其他两列仍然存在。有没有办法摆脱另外两个列,仍然进行合并工作