Sql server MS SQL SERVER 2012中的自然排序
我需要有关SQL Server 2012中自然排序的帮助。我有一个varchar列,其值为:Sql server MS SQL SERVER 2012中的自然排序,sql-server,sorting,sql-server-2012,Sql Server,Sorting,Sql Server 2012,我需要有关SQL Server 2012中自然排序的帮助。我有一个varchar列,其值为: PAZ/01/03/2014 ... PAZ/233/03/2014 PAZ/01/04/2014 .... PAZ 10/04/2014 ... PAZ/100/04/2014 其中PAZ是静态字符串,/之后的第二部分是lp编号,从每个月的01开始-第三部分,最后一部分是一年 例如,当我按此列排序时,我收到 PAZ/01/04/2014 PAZ/02/04/2014 ... PAZ 10/04/20
PAZ/01/03/2014
...
PAZ/233/03/2014
PAZ/01/04/2014
....
PAZ 10/04/2014
...
PAZ/100/04/2014
其中PAZ是静态字符串,/之后的第二部分是lp编号,从每个月的01开始-第三部分,最后一部分是一年
例如,当我按此列排序时,我收到
PAZ/01/04/2014
PAZ/02/04/2014
...
PAZ 10/04/2014
PAZ 02/04/2014
但我需要在每个月按lp进行自然排序
PAZ/01/03/2014
...
PAZ233/03/2014
PAZ/01/04/2014
PAZ/02/04/2014
...
PAZ/10/04/2014
...
PAZ/300/04/2014
PAZ/01/05/2014
...
PAZ/500/05/2014
etc
如果我是在你的情况下,我会创建新的列,并插入ip字符串中的日期部分,即
COLUMN 1 Column 2
PAZ/01/03/2014 03/2014
PAZ/233/03/2014 03/2014
PAZ/01/04/2014 04/2014
PAZ/02/04/2014 04/2014
然后按第2列和第1列对结果排序
另外,您可以使用patindex剪切ip字符串并创建新列这仍然会在2014年3月12日之前对PAZ/101/03进行排序,因此创建第三列,仅包含ip部分和按列排序2、3、1如果排序、查询等需要此列的组成部分,它倾向于指出这样一个事实,即组件应该存储在单独的列中。然后这个varchar可以由一个计算列来构造。