Sql 使用带有别名列名的SWITCH()

Sql 使用带有别名列名的SWITCH(),sql,ms-access,switch-statement,Sql,Ms Access,Switch Statement,我正在使用MS Access显示一个别名列,并试图将其与SWITCH语句结合起来。以下代码起作用: SELECT column1 & column2 AS mycol FROM tablename 我想做的是以下伪代码: SELECT SWITCH(column1 & column2 AS mycol, mycol is null, 'NONE') FROM tablename 基本上,两列中都有数据,或者两列中都有空值。如果为空,我希望它说“无”,否则将两者连接在一起。如何

我正在使用MS Access显示一个别名列,并试图将其与SWITCH语句结合起来。以下代码起作用:

SELECT column1 & column2 AS mycol FROM tablename
我想做的是以下伪代码:

SELECT SWITCH(column1 & column2 AS mycol, mycol is null, 'NONE') FROM tablename

基本上,两列中都有数据,或者两列中都有空值。如果为空,我希望它说“无”,否则将两者连接在一起。如何更改语法以使其生效?

您应该在切换结果中指定别名

SELECT SWITCH( (column1 & column2)  is  null, 'NONE') AS mycol, FROM tablename

虽然可以,但您不需要
开关
。您可以使用
iif

select iif(column1 is null, 'NONE', column1 & column2) as mycol
  from tablename
如果要使用
开关

select switch(column1 is null, 'NONE', True, column1 & column2) as mycol
  from tablename

那是最简单的方法,谢谢!我还添加了[(column1和column2)不为null,(column1和column2)],以确保在它确实存在的情况下获得正确的行为。