之前可能会问过这个问题,但我似乎无法在任何地方找到任何相关的答案。
几周前我在Access(2003)中写了几个长查询。我想今天使用这些查询,发现它们被截断了。 1}}中的某个位置显示AS [%$##@_Alias]
,其余部分缺失。
两个查询的长度只有几百个字符,因此远低于Access允许的限制。
两个查询的结构都是这样的
SELECT Some calculated fields with a few IIF statements
FROM
(
SELECT Some fields calculated with lots of IIF statement
FROM joined table
WHERE some condition
)
ORDER BY Some fields
我不特别要求Access,并且当然不应该导致它在愤怒中截断查询。那么为什么会这样呢?
请不要抨击我现在放入日文,下一部分纯粹是供参考。我的一个实际(截断)查询看起来像这样:
SELECT
管理番号,
種別,
IIF(種別TYPE='', OTHER種別TYPE, IIF(種別TYPE='その他','その他' & OTHER種別TYPE,種別TYPE)) AS TYPE
FROM [
SELECT
管理番号,
IIF(建物か設備_建物,'建物',IIF(建物か設備_設備, '設備', '種別なし')) AS 種別,
IIF(建物か設備_建物,IIF(建物用途_戸建住宅,'戸建住宅',IIF(建物用途_共同住宅,'共同住宅',IIF(建物用途_教育施設,'教育施設',IIF(建物用途_庁舎,'庁舎',IIF(建物用途_事務所,'事務所',IIF(建物用途_工場,'工場',IIF(建物用途_倉庫,'倉庫',IIF(建物用途_店舗,'店舗',IIF(建物用途_物置小屋,'物置小屋',IIF(建物用途_車庫,'車庫',IIF(建物用途_農作小屋,'農作小屋',IIF(建物用途_その他,'その他')))))))))))),
IIF(建物か設備_設備,IIF(設備種別_物置,'物置',IIF(設備種別_駐車場,'駐車場',IIF([設備種別_運動場/庭等],'運動場/庭等',IIF(設備種別_電気設備等,'電気設備等',IIF(設備種別_畜舎など,'畜舎など',IIF(設備種別_ビニールハウス等,'ビニールハウス等',IIF(設備種別_その他,'その他'))))))),'')) AS 種別TYPE,
'(' & REPLACE(REPLACE(TRIM(建物用途_その他記載欄),'(',''),')','') & ')' AS OTHER種別TYPE
FROM
T_メイン INNER JOIN T対象 ON T_メイン.管理番号=T対象.調査番号]. AS [%$##@_Alias];
修改
我重新检查了我的两个查询,而不像我说的只有其中一个被截断了。另一个是完整的。非常奇怪...
答案 0 :(得分:2)
我注意到如果我没有为子查询分配别名,Access'查询设计器将为我分配一个。这些别名类似于你引用的那个,[%$##@_Alias]
。但是,我没有注意到它在添加这样的别名时丢弃了我的SQL文本的任何部分。因此,尽管此建议可能很长,但请尝试分配您自己的别名,例如FROM ( ... ) AS sub
,并查看查询设计器是否保留其余的SQL文本。