zoukankan      html  css  js  c++  java
  • 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进行一下转换。最后就能得出我的结果

  • 相关阅读:
    shell预备知识
    php session和cookie
    php数据库访问抽象层PDO
    递归求斐波那契数
    SqlDataReader的使用
    DataAdapter与DataSet的使用
    CLR
    Android Studio javadoc 生成注释文档
    MySQL教程之concat以及group_concat的用法
    一文读懂MQTT协议
  • 原文地址:https://www.cnblogs.com/sixiangqimeng/p/3408889.html
Copyright © 2011-2022 走看看