对于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,但遗憾的是没有成功。它导致了一个混乱的输出:
答案 0 :(得分:2)
我们的实习生(凯文)在Austrian blog找到了解决方案。
我们在IIF
或Switch
之前进行了隐式转换。
这可以通过空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
此技巧也适用于其他隐式不需要的强制转换操作。