不知为啥,当我得查询中出现distinct时,order by 中必须包含要查询的列,否则报错。

SELECT DISTINCT
a.DetailId,
a.OrderId,
a.ProductId,
pi2.BarCode,
pi1.ProductName,
pi1.productCode,
pi1.spec,
a.UnitId,
ui.UnitName,
SNUM(a.DetailId) as Quantity,
a.Discount,
a.UnitPrice,
a.TaxRate,
a.ProductMoney,
a.TaxMoney,
a.PayableMoney,
a.IsGiveAway,
a.DetailId AS ColGuid,
a.ParentGuid,
a.DetailId AS OrderDetailId,
a.OrderId AS RelevanceOrder,
a.Memo,
pi2.SalePrice AS InitUnitPrice,
a.SEQ, ---必须包含这个,否则报错
a.Quantity - SNUM(a.DetailId) AS OutQuantity
FROM
SaleOrderDetail a
LEFT JOIN ProductInfo pi1 ON a.ProductId = pi1.ProductId
LEFT JOIN ProductPrice pi2 ON a.ProductId = pi2.ProductId
AND pi2.unitid = a.unitid
LEFT JOIN UnitInfo ui ON a.UnitId = ui.UnitId
WHERE
a.DetailId IN (SELECT COLUMN_VALUE FROM TABLE(SPLITSTR(IDS, ',')))
ORDER BY
a.SEQ ASC

还有就是从程序传入存储过程中的参数值,如果是个空字符串,在存储过程中获取也是个null,这里要注意。

动态sql时,sql语句不能用NVARCHAR2类型,一定要用VARCHAR2类型。

distinct与order by的更多相关文章

  1. 不要随随便便的distinct和order by

    相关查询非常慢,通过程序拿到了相关sqlexplainexplain SELECT DISTINCT(o.orders_id), o.oa_order_id, customers_email_addr ...

  2. 解决distinct与order by 的冲突

    sql="select distinct id from test order by otherfield desc" 需要找到不同的id,同时又想让记录按fbsj排序.但是这样一 ...

  3. MySql5.7 Distinct与Order By同时使用报错的解决方案

    mysql5.7版本中,如果DISTINCT和order by一起使用将会报3065错误,sql语句无法执行.这是由于5.7版本语法比之前版本语法要求更加严格导致的. 解决方案: 1.vim /etc ...

  4. mysql数据去重并排序使用distinct 和 order by 的问题

    比如直接使用: SELECT distinct mobileFROM table_aWHERE code = 123ORDER BY a_ime desc 在本地mysql数据库没有错,在线上的数据库 ...

  5. sql中distinct和order by问题的解决方案

    需求:根据PID字段对数据去重,根据Sort字段排序,需要显示这个两个字段. 如图,这是原始数据,先排序: 排序后发现两个项是重复的,需要去除一个, 因为Distinct对检查Select里面的每一列 ...

  6. distinct 与order by 一起用

    distinct 后面不要直接跟Order by , 如果要用在子查询用用order by .

  7. 解决Sql中DIstinct与Order By共同使用的冲突问题

    1.需求场景: 需要把最新更新文章的前五名作者展示出来. 2.解决问题第一步: select top 5 creator from table order by updateDate desc 结果: ...

  8. 《MySQL必知必会》检索数据,排序检索数据(select ,* ,distinct ,limit , . , order by ,desc)

    <MySQL必知必会>检索数据,排序检索数据 1.检索数据 1.1 select 语句 为了使用SELECT检索表数据,必须至少给出两条信息一想选择什 么,以及从什么地方选择. 1.2 检 ...

  9. 在SELECT DISTINCT 状况下使用 Order BY Newid() 随机数选出记录

    在日常作业中,有时候可能是一些活动要抽出得奖人或选出抽查的一些名单, 就常常会使用到 Order BY Newid() 的方式来做随机数选出, 但有可能的状况需是要搭配到 DISTINCT 来选出,这 ...

随机推荐

  1. Angularjs注入拦截器实现Loading效果

    angularjs作为一个全ajax的框架,对于请求,如果页面上不做任何操作的话,在结果烦回来之前,页面是没有任何响应的,不像普通的HTTP请求,会有进度条之类. 什么是拦截器? $httpProvi ...

  2. SpannableString实现TextView的链接效果

    SpannableString实现TextView的链接效果 一.简介 TextView使用SpannableString设置复合文本TextView通常用来显示普通文本,但是有时候需要对其中某些文本 ...

  3. UnsupportedOperationException

    java不支持该功能,多见于, Arrays.asList() ,然后使用remove和add方法.     因为asarraylist的集合是一个转化来的集合,它的大小是固定的.不能进行长度修改. ...

  4. java开发工具idea,在install时候报错The packaging for this project did not assign a file to the build artifact

    intellij中install报错:The packaging for this project did not assign a file to the build artifact 原因是run ...

  5. react 总结

    1.React 里直接修改 this.state 和调用 setState() 修改 state 的值有什么区别? 使用对this.state赋值并没有什么作用,官方提醒,应该把this.state当 ...

  6. Android进阶常用网站

    Android进阶常用网站 android中文网 Android Studio 安卓开发者社区

  7. Pro C/C++环境搭建

    一. 安装oracle软件或者oracle客户端. 二. 载入orasql10.lib (1)在连接器->常规->附件库目录中,加入orasql10.lib库所在目录. (2)在连接器-& ...

  8. LeetCode OJ:Word Search(单词查找)

    Given a 2D board and a word, find if the word exists in the grid. The word can be constructed from l ...

  9. 剑指offer--31.二叉树中和为某一值的路径

    深度优先搜索 --------------------------------------------------------------------------------------------- ...

  10. angularJs 模拟jQuery中的this

    在angularJs中,this指向$scope!可以$event配合使用$(event.target)实现,代码如下: HTML部分: <p ng-click="testClick( ...