导航:首页 > 程序命令 > union报错命令未正确结束

union报错命令未正确结束

发布时间:2022-05-04 01:32:08

⑴ mybatis 中用insert into select ..... 报错命令未正确结束,但把这句sql放到plsql中执行正常

我也遇到了同样的问题,语句是正常的,我找了一下原因 是mybatis的这个useGeneratedKeys属性的问题,
官网的解释是
允许 JDBC 支持自动生成主键,需要驱动兼容。如果设置为 true 则这个设置强制使用自动生成主键,尽管一些驱动不能兼容但仍可正常工作(比如 Derby)。
我写成了这样就不报错了
<insert id="saveOperatorAuthorityLink" parameterType="java.util.List" useGeneratedKeys="false">

⑵ sql命令未正确结束

order by不能直接出现在union的子句中,但是可以出现在子句中
改:
select * from person_info t where Id in(
select Id from person_info t where t.status='undo' order by (case when t.level='1' then 1 when t.level='0' then 2 else 0 end),t.time)
UNION
select * from person_info t where t.status='finished' order by t.time DESC

⑶ Access 2007数据库一个查询SQL中为啥不能连续用2个UNION,三个表任意两个UNION成功,一旦三个UNION就报错

你的SQL看来很正常. 你的测试思路也正确, 先试两个表, 然后试同一个表.

我在Access 2013测试了一下, 没出现状况.

能不你上传你的数据库文件来试试?

⑷ oracle中一个关于union和create的小问题

create table xvxdf as (select substr(名字,1,1) from test3_11 union all
select substr(名字,2,1) from test3_11 )
create table xvxdf as (select substr(名字,1,1) from test3_11 union all
select substr(名字,2,1) from test3_11 )

上面两句不是一样吗?
让你加入别名.你这样试试:
create table xvxdf as (select substr(名字,1,1) aa from test3_11 union all
select substr(名字,2,1) aa from test3_11 )

⑸ 存储过程下 union all 报错 关键字 'union' 附近有语法错误!

CREATEprocere[dbo].[zz_cgtj]
@ksrqvarchar(40)='',--开始日期
@jsrqvarchar(40)=''--结束日期
as
DECLARE@strSqlnvarchar(4000)
DECLARE@v_ksrqvarchar(40)
DECLARE@v_jsrqvarchar(40)
IF@ksrq<>''
set@v_ksrq=@ksrq
elseset@v_ksrq=N'2014-01-01'

IF@jsrq<>''
set@v_jsrq=@jsrq
elseset@v_jsrq=N'9999-12-31'
set@strSql='
selecta.cinvcode,c.cinvname,b.cBasEngineerFigNocgfl,d.cvenname,c.cinvstd,a.cgl,a.cgje,a.pjjg,e.zhdj,f.pjjgjg1,
g.pjjgjg2,h.pjjgjg3,i.pjjgjg4,j.pjjgjg5,k.pjjgjg6,l.pjjgjg7,m.pjjgjg8,n.pjjgjg9,o.pjjgjg10,
p.pjjgjg11,q.pjjgjg12,
f.cglcgl1,g.cglcgl2,h.cglcgl3,i.cglcgl4,j.cglcgl5,k.cglcgl6,l.cglcgl7,m.cglcgl8,n.cglcgl9,o.cglcgl10,p.cglcgl11,q.cglcgl12,
f.cgjeje1,g.cgjeje2,h.cgjeje3,i.cgjeje4,j.cgjeje5,k.cgjeje6,l.cgjeje7,m.cgjeje8,n.cgjeje9,o.cgjeje10,p.cgjeje11,q.cgjeje12,
r.qnsl,r.qnje,r.qnpjjgfrom
(
selectmax(cinvcode)cinvcode,max(cvencode)cvencode,sum(ipbvquantity)cgl,sum(isum)cgje,
sum(isum)/sum(ipbvquantity)pjjgfromzz_cg
wheredpbvdate>=''''''+@v_ksrq+''''''anddpbvdate<=''''''+@v_jsrq+''''''
groupbycinvcode,cvencode)a
innerjoininventorycona.cinvcode=c.cinvcode
innerjoinbas_partbona.cinvcode=b.invcode
innerjoinvendordona.cvencode=d.cvencode
leftjoin
(selectcinvcode,cvencode,isum/ipbvquantityzhdjfromzz_cgwhereidin(
selectmax(id)fromzz_cggroupbycinvcode,cvencode))e
ona.cinvcode=e.cinvcodeande.cvencode=d.cvencode
leftjoinzz_cg01fona.cvencode=f.cvencodeanda.cinvcode=f.cinvcode
leftjoinzz_cg02gona.cvencode=g.cvencodeanda.cinvcode=g.cinvcode
leftjoinzz_cg03hona.cvencode=h.cvencodeanda.cinvcode=h.cinvcode
leftjoinzz_cg04iona.cvencode=i.cvencodeanda.cinvcode=i.cinvcode
leftjoinzz_cg05jona.cvencode=j.cvencodeanda.cinvcode=j.cinvcode
leftjoinzz_cg06kona.cvencode=k.cvencodeanda.cinvcode=k.cinvcode
leftjoinzz_cg07lona.cvencode=l.cvencodeanda.cinvcode=l.cinvcode
leftjoinzz_cg08mona.cvencode=m.cvencodeanda.cinvcode=m.cinvcode
leftjoinzz_cg09nona.cvencode=n.cvencodeanda.cinvcode=n.cinvcode
leftjoinzz_cg10oona.cvencode=o.cvencodeanda.cinvcode=o.cinvcode
leftjoinzz_cg11pona.cvencode=p.cvencodeanda.cinvcode=p.cinvcode
leftjoinzz_cg12qona.cvencode=q.cvencodeanda.cinvcode=q.cinvcode
leftjoinzz_cgqnrona.cvencode=r.cvencodeanda.cinvcode=r.cinvcode
whereisnull(b.cBasEngineerFigNo,'''')<>''''
unionall
selectnull,''''采购分类小记'''',b.cBasEngineerFigNocgfl,null,null,sum(a.cgl)cgl,sum(a.cgje)cgje,sum(a.cgje)/sum(a.cgl)pjjg,null,sum(f.cgje)/sum(f.cgl)jg1,
sum(g.cgje)/sum(g.cgl)jg2,sum(h.cgje)/sum(h.cgl)jg3,sum(i.cgje)/sum(i.cgl)jg4,sum.......
whereisnull(b.cBasEngineerFigNo,'''')<>''''
groupbyb.cBasEngineerFigNo
orderbycgfl,cinvcodedesc
'

exec(@strSql)

GO

问题出在你的单引号上,在动态SQL语句中一个单引号,要替换为2个单引号

⑹ oracle ORA-00933;SQL 命令未结束!在线等

你的where 语句不能放那里。
因为使用了union all这样的东西,它会将前面一条SQL和后面一条SQL组合成一条SQL来执行。你where写在那里,就会造成SQL语法错误了。
你可以写成这样
select * from (这是写你的SQL语句中union all之前的语句) + union all...(这就是你后面的语句了)

⑺ 谁帮看下,下面的sql可能有啥问题,我执行时,他在union 处提示命令未正常结束,看着好像没啥问题啊

order by子句应该在最后,不能出现在union之前

你的意思是第一个数据集的要排在前面,而不是和第二个数据集的一起排序,是吗?
要是这样的话,构造一个伪列(dataset)作为第一排序因子,如下:
select objid , objname , objtype , quoteid as quoterid , quotename as quotername , quotetype as quotertype , evidence, dataset=1
from pm4h_sum.v_report_summarypath
union
select objid , objname , objtype , quoteid as quoterid , quotename as quotername , quotetype as quotertype , evidence, dataset=2
from pm4h_sum.v_alarm_summarypath_ref
ORDER BY dataset, quotertype, quotername;

⑻ 请求java高手 看一下sql , union all

select * from( --添加

select r.id, r.parentid, r.name, nvl(g.times, 0)
from (select id, parentid, name
from rbac_group
where parentid = '020000'
or id = '020000') r
left join (select operatorgroupid, count(*) times
from supv_accident
where (1 = 1)
and happendate >= to_date('2012-01-01', 'yyyy-mm-dd')
and happendate <= to_date('2012-12-31', 'yyyy-mm-dd')
group by operatorgroupid) g on r.id = g.operatorgroupid
order by r.id asc

) --添加

union all
select r.id, r.parentid, r.name, nvl(h.times, 0)
from (select id, parentid, name
from rbac_group
where parentid = '020000'
or id = '020000') r
left join (select operatorgroupid, count(*) times
from supv_inspe
where (1 = 1)
and cjdate >= to_date('2012-01-01', 'yyyy-mm-dd')
and cjdate <= to_date('2012-12-31', 'yyyy-mm-dd')
group by operatorgroupid) h on r.id = h.operatorgroupid
order by r.id asc

⑼ SQL UNION语句的一个问题

因为是 sql server ?
如果是:就有可能这样子,不信你再试下!
SELECT 'OK' FROM (select * from ['DATA$'] A) 执行这句看是否报错;
如果报错执行下面一句,看下是否报错:
SELECT 'OK' FROM (select * from ['DATA$'] A) B

阅读全文

与union报错命令未正确结束相关的资料

热点内容
minecraftlinux服务器搭建 浏览:376
linux命令新建文件 浏览:708
长线pdf 浏览:607
程序员电脑支持手写 浏览:414
解压头戴式耳机推荐 浏览:344
纸条app上怎么样看对方主页 浏览:883
编译英语单词怎么写 浏览:249
编译原理和汇编原理的区别 浏览:864
如何给加密的pdf解密 浏览:770
华为盒子时间同步服务器地址 浏览:95
python处理excel乱码 浏览:391
mysql的命令行 浏览:822
jpeg采用什么算法 浏览:701
程序员红轴薄膜 浏览:306
洗脸盆压缩 浏览:780
dpd是什么算法 浏览:157
加密技术中的密钥 浏览:962
qq企业邮箱本地客户端服务器地址 浏览:751
排序算法框架 浏览:853
马扎克qtn编程说明书下载 浏览:188