除非除此以外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效
除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效。
很奇怪的问题
select top 10 单位地址 from (select top 100 percent * from (报告单 inner join 单位名称 on 单位名称.dwmcid=报告单.sjdwmcid) inner join 单位地址 on 单位地址.dwdzid=报告单.sjdwdzid where 单位地址 like '%" + prefixText + "%'" +Linksql+ " order by bgdid desc) as dwdz group by 单位地址"
当该sql语句能查询到记录时,即记录数>0时,则正常,如果记录数为0,则提示:
“除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效。”
因为我无法保证肯定会查询到记录,如何修改呢?
------解决方案--------------------
select top 10 单位地址
from (select top 100 percent *
from (报告单 inner join 单位名称 on 单位名称.dwmcid=报告单.sjdwmcid)
inner join 单位地址 on 单位地址.dwdzid=报告单.sjdwdzid
where 单位地址 like '%" + prefixText + "%'" +Linksql+ "
order by bgdid desc) as dwdz
group by 单位地址
order by 单位地址
添加上红色部分 、try
------解决方案--------------------
select top 10 单位地址
from (
select 字段列表
from 报告单
inner join 单位名称 on 单位名称.dwmcid=报告单.sjdwmcid
inner join 单位地址 on 单位地址.dwdzid=报告单.sjdwdzid
where 单位地址 like '%" + prefixText + "%'" +Linksql+ "
) as dwdz
group by 单位地址"
把TOP 100 PERCENT去掉,从语句中好像看不出用场
------解决方案--------------------
问题是我需要以bgdid 反向排序,另外,即使我加上此句,只要查询到的记录为0,依然会出现上述的错误提示,另我用的是vs2010+sql2008
------解决方案--------------------
这句似乎得有,因为不加的话,order by 会有问题,还会提示这句错误
------解决方案--------------------
去掉top 100 percent试试
------解决方案--------------------
这是什么语句?这样的语句貌似不能执行的.
如果这是在客户端写的,那,prefixtext和linksql是什么样的?
------解决方案--------------------
很奇怪的问题
select top 10 单位地址 from (select top 100 percent * from (报告单 inner join 单位名称 on 单位名称.dwmcid=报告单.sjdwmcid) inner join 单位地址 on 单位地址.dwdzid=报告单.sjdwdzid where 单位地址 like '%" + prefixText + "%'" +Linksql+ " order by bgdid desc) as dwdz group by 单位地址"
当该sql语句能查询到记录时,即记录数>0时,则正常,如果记录数为0,则提示:
“除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效。”
因为我无法保证肯定会查询到记录,如何修改呢?
------解决方案--------------------
select top 10 单位地址
from (select top 100 percent *
from (报告单 inner join 单位名称 on 单位名称.dwmcid=报告单.sjdwmcid)
inner join 单位地址 on 单位地址.dwdzid=报告单.sjdwdzid
where 单位地址 like '%" + prefixText + "%'" +Linksql+ "
order by bgdid desc) as dwdz
group by 单位地址
order by 单位地址
添加上红色部分 、try
------解决方案--------------------
select top 10 单位地址
from (
select 字段列表
from 报告单
inner join 单位名称 on 单位名称.dwmcid=报告单.sjdwmcid
inner join 单位地址 on 单位地址.dwdzid=报告单.sjdwdzid
where 单位地址 like '%" + prefixText + "%'" +Linksql+ "
) as dwdz
group by 单位地址"
把TOP 100 PERCENT去掉,从语句中好像看不出用场
------解决方案--------------------
问题是我需要以bgdid 反向排序,另外,即使我加上此句,只要查询到的记录为0,依然会出现上述的错误提示,另我用的是vs2010+sql2008
------解决方案--------------------
这句似乎得有,因为不加的话,order by 会有问题,还会提示这句错误
------解决方案--------------------
去掉top 100 percent试试
------解决方案--------------------
select top 10 单位地址 from (select top 100 percent * from (报告单 inner join 单位名称 on 单位名称.dwmcid=报告单.sjdwmcid) inner join 单位地址 on 单位地址.dwdzid=报告单.sjdwdzid where 单位地址 like '%" + prefixText + "%'" +Linksql+ " order by bgdid desc) as dwdz group by 单位地址"
这是什么语句?这样的语句貌似不能执行的.
如果这是在客户端写的,那,prefixtext和linksql是什么样的?
------解决方案--------------------