来自 ACCESS 的条件 SELECT
Conditional SELECT from ACCESS
我正在使用 OleDb 查询 Access 数据库
我有一个 SQL,它从 3 个连接表中选择多个列。它工作正常,直到我尝试包含 CASE 语句或等效项。
如果 TableA.col1 为 NULL,我想要 return TableB.col2,否则我想要 TableA.col1。
请求的示例数据:
table A
col 1 - NULL
col 2 - 78
table B
col 1 - 53
col 2 - 12
如果上面存在,TableA.col1 是 NULL 所以我想要 TableB.col2: 12
table A
col 1 - 35
col 2 - 78
table B
col 1 - 53
col 2 - 12
如果上面存在,TableA.col1 不是 NULL 所以我会 return 它:35
我的 SQL 已经连接了 3 个表和 return 的 100 列。这只是在列表中添加一个额外的列。
我试过:
SELECT CASE WHEN TableA.col1 IS NULL THEN TableB.col2 ELSE TableA.col1 AS col
这给出了 'System.Data.OleDb.OleDbException' 类型的第一次机会异常发生在 System.Data.dll
附加信息:IErrorInfo.GetDescription 失败 E_FAIL(0x80004005) 和
Nz(TableA.col1, TableB.col2) AS col
给我: 'System.Data.OleDb.OleDbException' 类型的第一次机会异常发生在 System.Data.dll
附加信息:表达式中的未定义函数 'NZ'
还有这两个:
IIF(TableA.col1 is NULL, TableB.col2,TableA.col1) AS col
IIF(isNull(TableA.col1), TableB.col2,TableA.col1) AS col
两者都给出了相当通用的错误消息:'System.Data.OleDb.OleDbException' 类型的第一次机会异常发生在 System.Data.dll
附加信息:没有为一个或多个必需参数提供值。
这是有效的 Access SQL 语法:
IIF(TableA.col1 is NULL, TableB.col2, TableA.col1) AS col
错误消息 "No value given for one or more required parameters" 表示 Access 无法将查询中的某些内容识别为对象、函数或 SQL 关键字。通常这是由于拼写错误而发生的。
在 Access 查询设计器中将您的 SELECT
语句作为新查询进行测试。当您尝试从那里 运行 它时,Access 将显示一个输入对话框,要求您为它找到的第一个参数提供一个值。请注意,对话框包含参数的名称。如果这不能查明问题,请向我们展示您的查询 SQL 并告诉我们 Access 标识的参数名称。
我正在使用 OleDb 查询 Access 数据库
我有一个 SQL,它从 3 个连接表中选择多个列。它工作正常,直到我尝试包含 CASE 语句或等效项。
如果 TableA.col1 为 NULL,我想要 return TableB.col2,否则我想要 TableA.col1。
请求的示例数据:
table A
col 1 - NULL
col 2 - 78
table B
col 1 - 53
col 2 - 12
如果上面存在,TableA.col1 是 NULL 所以我想要 TableB.col2: 12
table A
col 1 - 35
col 2 - 78
table B
col 1 - 53
col 2 - 12
如果上面存在,TableA.col1 不是 NULL 所以我会 return 它:35
我的 SQL 已经连接了 3 个表和 return 的 100 列。这只是在列表中添加一个额外的列。
我试过:
SELECT CASE WHEN TableA.col1 IS NULL THEN TableB.col2 ELSE TableA.col1 AS col
这给出了 'System.Data.OleDb.OleDbException' 类型的第一次机会异常发生在 System.Data.dll 附加信息:IErrorInfo.GetDescription 失败 E_FAIL(0x80004005) 和
Nz(TableA.col1, TableB.col2) AS col
给我: 'System.Data.OleDb.OleDbException' 类型的第一次机会异常发生在 System.Data.dll 附加信息:表达式中的未定义函数 'NZ' 还有这两个:
IIF(TableA.col1 is NULL, TableB.col2,TableA.col1) AS col
IIF(isNull(TableA.col1), TableB.col2,TableA.col1) AS col
两者都给出了相当通用的错误消息:'System.Data.OleDb.OleDbException' 类型的第一次机会异常发生在 System.Data.dll 附加信息:没有为一个或多个必需参数提供值。
这是有效的 Access SQL 语法:
IIF(TableA.col1 is NULL, TableB.col2, TableA.col1) AS col
错误消息 "No value given for one or more required parameters" 表示 Access 无法将查询中的某些内容识别为对象、函数或 SQL 关键字。通常这是由于拼写错误而发生的。
在 Access 查询设计器中将您的 SELECT
语句作为新查询进行测试。当您尝试从那里 运行 它时,Access 将显示一个输入对话框,要求您为它找到的第一个参数提供一个值。请注意,对话框包含参数的名称。如果这不能查明问题,请向我们展示您的查询 SQL 并告诉我们 Access 标识的参数名称。