这是一个写sql过程中遇到的小问题
已知,union上下的sql都可以单独正常运行,但是加了union后会报错sql命令为正确结束
为了方便查看union的范围还在每部分sql都用括号括起来,执行更糟糕了一点缺失右括号。
这个时候发现报错在order by上,但自信sql没毛病所以并没有放在眼里,而是思考了一下为什么会报错:
1、上下sql的格式差不多,且可单独执行
2、union如果是上下格式不一致应该报其他的错
3、排除了select的格式问题,那么一定是有一些关键字的冲突才导致的
在这个时候我才重新的看了一遍sql想去除一些不必要的地方,从头看到尾,感觉order by的嫌疑最大,我的想法是在union过程中上面和下面都要排序,造成了争抢,虽然都是相同的字段但毕竟来自不同的部分,所以试着把order by注掉,果然不报错了。
如果还想要排序的效果,我建议把union后的结果括起来,外面再写一个select再排序