• MSsql 中 in 语法排序的说明


    今天写了一个地方用到in了,就是数据库中的一个存储过程,因为要查出来一个题目的知识点的详细树,所以把父节点,子节点都给传进去,后来发现输出顺序不对,调试时发现in里面的顺序没错,但是外面顺序查出来给排序了,不是按照我之前的顺序输出的,经过研究中找到了一个解决办法,源码如下 

    select NodeTitle from dbo.Qes_KnowledgePoint  where KpNodeID  in(select line from split(@Nodeid,',')) order BY CHARINDEX(',' + CONVERT(nvarchar, KpNodeID) + ',', ',' + CONVERT(nvarchar, Replace(@Nodeid, ' ','')) + ',')

    这个里面select line from split(@Nodeid,',')) 是我写的一个表值函数,用来截取字符的,如果我的这个字段KPNodeID是nvarchar类型的话不用这么麻烦,直接后面order by charindex(‘内容’,kpnodeid),但是现在我这个int类型的数据, 所以必须要用congvert进行一下转换。最后就能得出我的结果

  • 相关阅读:
    数据分析05 /pandas的高级操作
    ABP之应用服务(2)
    ABP之应用服务(1)
    ABP之仓储
    ABP之创建实体
    ABP之框架体系
    ABP之项目的搭建
    2018年,加油!!!
    WF的简单使用
    WCF之通信工厂的简单使用
  • 原文地址:https://www.cnblogs.com/sixiangqimeng/p/3408889.html
Copyright © 2020-2023  润新知