我有一个Excel文件,它基本上是数据库服务器的查询结果。
我将这个Excel文件的一张作为外部表从MS Access数据库中链接。
这个外部“Excel表”有一组代表可选参数的列。
我想创建一个“all_parameters”查询结果字段,该字段表示所有非空参数的以分号分隔的列表,作为“参数名称:参数值”元组。在这种情况下,“参数名称”也是要在其中找到参数值的列的名称。
想象一下下表:
id param_foo param_bar param_baz
1 a
2 b c
3
我希望创建一个生成以下字段的MS Access查询:
id parameter_list
1 param_foo: a
2 param_bar: b; param_baz: c
3 (null)
什么行不通,是这样的:
SELECT
id,
Iif([param_foo]="Null";"";"; param_foo: "&[param_foo])
& Iif([param_bar]="Null";"";"; param_bar: "&[param_bar])
& Iif([param_baz]="Null";"";"; param_baz: "&[param_baz]) AS all_parameters
FROM
my_table
;
任何帮助都非常受欢迎。
答案 0 :(得分:0)
傻傻的我。
MS Access需要逗号作为参数分隔符,而不是分号。
因此以下查询有效:
SELECT
id,
Iif([param_foo]="Null", "", "; param_foo: "&[param_foo])
& Iif([param_bar]="Null", "", "; param_bar: "&[param_bar])
& Iif([param_baz]="Null", "", "; param_baz: "&[param_baz]) AS all_parameters
FROM
my_table
;
问题解决了。