SWITCH输出的IIF限制为255

时间:2017-10-27 13:50:09

标签: sql ms-access enterprise-architect jet

对于Enterprise Architect中的自定义SQL查询,我们使用的是IIF或SWITCH,但两者似乎都对其输出有限制。

有没有办法绕过这个限制?

作为具有限制

的查询下面的简单示例
select 
switch(true, note) as NoteAfterSwitch,
Cstr(switch(true, note)) as NoteAfterCstrSwitch,
switch(true, cstr(note)) as CstrNoteAfterSwitch,
Cvar(switch(true, note)) as NoteAfterCVarSwitch,
switch(true, cvar(note)) as CvarNoteAfterSwitch,
Note
from t_object as t
where t.object_id = 115

列NoteAfterSwitch限制为255个字符。 而原始Note有超过255个字符。 我们想要使用原始尺寸。

在NoteAfterCstrSwitch和CstrNoteAfterSwitch列中,我们尝试使用CStr,但也没有成功。

在NoteAfterCvarSwitch和CvarNoteAfterSwitch列中我们尝试使用Cvar,但也没有成功。

修改 我们也尝试使用JET 4.0,但遗憾的是没有成功。它导致了一个混乱的输出:

enter image description here

1 个答案:

答案 0 :(得分:2)

我们的实习生(凯文)在Austrian blog找到了解决方案。 我们在IIFSwitch之前进行了隐式转换。 这可以通过空union

来完成
SELECT  Note as notes
FROM    t_object AS o
where   1 = 0
union all
select  switch(true, o.note)
FROM    t_object AS o
WHERE   o.Object_ID = 115

此技巧也适用于其他隐式不需要的强制转换操作。