带有 CASE 语句的 MS Access 查询
Posted
技术标签:
【中文标题】带有 CASE 语句的 MS Access 查询【英文标题】:MS Access Query with CASE statement 【发布时间】:2017-04-24 07:41:51 【问题描述】:如果表“a”的值为“-”,我只想获取一个表“b”的值 如果表“b”的值为空,则获取表“a”的值,即使它是“-”
Microsoft Access 使用此查询说“缺少运算符”:
SELECT ts.data_generacio,
ts.estat,
ts.exercici,
Month(tsl.data) AS Mes,
Day(tsl.data) AS Dia,
tsl.data,
tsl.cod_treb,
t.nom_treb,
tsl.hores,
p.cod_proj,
p.acronim AS nom_proj,
j.justificacio,
tsl.timesheet_id,
p.ref,
CASE WHEN tsl.activitat != '' THEN tsl.activitat ELSE ts.activitat END AS Activitat
FROM timesheet_lines AS tsl
LEFT JOIN timesheets AS ts
ON tsl.timesheet_id = ts.id
LEFT JOIN treballadors AS t
ON tsl.cod_treb = t.cod_treb
LEFT JOIN justificacions AS
ON ts.id_justificacio = j.id
LEFT JOIN projectes AS p
ON j.cod_proj = p.cod_proj;
我认为错误出在 CASE 表达式行上。
【问题讨论】:
这是一个case 表达式,不是语句... 一次删除一行,查找错误何时消失。 没有帮助.... 所以找不到错误行?!? 错误行在Case表达式行。 【参考方案1】:MS Access 不支持CASE
语句。使用IIF
:
IIF(tsl.activitat <> '', tsl.activitat, ts.activitat ) AS Activitat
我也不确定 Access 是否支持 LEFT JOIN
上的别名,但它可能支持
注意(虽然标记正确),您的问题的标题可能很麻烦......大多数人在编写“MS SQL”时会提到 Transact-SQL (TSQL)。 MS SQL Server 使用 Transact-SQL,但 MS Access 不使用它,它使用自己的 SQL 方言(称为“Access SQL”,相比之下相当有限)
【讨论】:
以上是关于带有 CASE 语句的 MS Access 查询的主要内容,如果未能解决你的问题,请参考以下文章
带有 Like 语句的 MS-Access 上的 SQL 请求似乎永远无法正常工作