【发布时间】:2016-08-22 17:54:21
【问题描述】:
我正在使用 MSquery 并有以下 sql 查询:
SELECT `Sheet1$`.colA, `Sheet1$`.colB,
Switch(
colA = '1.0', 'A1',
colA = '2.0', 'A2',
colA = '3.0', 'C1',
colA = '4.0', 'C2'
)AS colG
FROM (
SELECT `Sheet1$`.colA, `Sheet1$`.colB
FROM `Sheet1$` `Sheet1$`
UNION ALL
SELECT `Sheet2$`.colC, `Sheet2$`.colD
FROM `Sheet2$` `Sheet2$`
) t;
我收到一条错误消息:条件表达式中的数据类型不匹配。我认为这与我在 switch 语句中的数字周围使用单引号这一事实有关。
我有两个表并正在附加它们。然后添加一个额外的列,并且应根据每行 A 列中的值添加不同的消息。当我将 A 列作为文本时,此查询有效,但是当我尝试使用数字或日期时,我收到错误消息。我需要使用什么来代替数字和日期的单引号?将要显示的消息使用单引号可以吗?
非常感谢。
【问题讨论】:
-
试试
[Sheet1$]而不是反引号。 -
colA当前是文本还是数字? -
colA 是数字。为了进行测试,我最初使用了文本,它可以按我的意愿工作,但是当我将其更改为数字时,我会收到错误消息。除了数字,我还想知道如何使用日期。