Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 按照SQL Server列中存储的以逗号分隔的ID值“3,4,5”排序选择数据_Sql Server_Sql Server 2008_Sql Server 2012 - Fatal编程技术网

Sql server 按照SQL Server列中存储的以逗号分隔的ID值“3,4,5”排序选择数据

Sql server 按照SQL Server列中存储的以逗号分隔的ID值“3,4,5”排序选择数据,sql-server,sql-server-2008,sql-server-2012,Sql Server,Sql Server 2008,Sql Server 2012,如何按照逗号分隔的顺序返回存储在其他表中的数据顺序,其他数据优先ID位于顶部 要进行这种排序,您需要创建一个包含您的排序的虚拟列,然后按该列对数据进行排序。类似于这个例子 Select * from (Select *, case ResourceCategory when 44 then 1. when 42 then 2, when 72 then 3 else 4 end as PriorityOrder from dataTable) A Order by PriorityOr

如何按照逗号分隔的顺序返回存储在其他表中的数据顺序,其他数据优先ID位于顶部


要进行这种排序,您需要创建一个包含您的排序的虚拟列,然后按该列对数据进行排序。类似于这个例子

Select * from 
    (Select *, case ResourceCategory when 44 then 1. when 42 then 2, when 72 then 3 else 4 end as PriorityOrder from dataTable) A
Order by PriorityOrder

为了从字符串在代码中创建这种排序,您必须将查询创建为动态sql,并从该字符串生成case语句。

首先,您需要提供有关您所请求内容的一些详细信息。这是一个很好的起点。值得一提的是,像这样存储分隔数据是一种非常糟糕的数据处理方式。谢谢你的帮助。为了更好地解释,我更新了一张图片,而不是图片。你能阅读我链接的文章并提供详细信息,以便其他人可以使用吗?那些被分隔的值是一场噩梦,从你极其模糊的描述来看,这已经发生了。图片中唯一的值也在分隔字符串中。我想是时候退一步,试着更清楚地解释这一点了。我动态地接收ID,如果它们是静态的,这会起作用。正如我所说的,每次从收到的字符串中创建自己版本的case语句时,您都需要创建自己的case语句。将字符串拆分为ID,将查询和case语句作为字符串创建,然后执行生成的字符串以实际运行查询。阅读动态SQL。