如何根据最近的日期对字段内的数据进行排序

时间:2013-04-26 01:24:47

标签: tsql reporting-services ssis

我在字段中有一个数据为“日期:03-21-13 12/13/14/15日期:04-21-13 39/12/34/14日期:04-19-13 19/45/65/12”。如何根据最近的日期对字段内的数据进行排序。< / p>

应该看起来像

  • 日期:04-21-13 39/12/34/14
  • 日期:04-19-13 19/45/65/12
  • 日期:03-21-13 12/13/14/15

1 个答案:

答案 0 :(得分:0)

因为您将其存储为文本,所以无法直接在列上进行正确排序(因为您似乎已发现)。您需要拆分列,然后对其进行排序。类似的东西:

Declare @tvTable Table (
    TextColumn varchar(max)
)

Insert  @tvTable
Select  '04-19-13 19/45/65/12'
Union All
Select  '04-21-13 39/12/34/14'
Union All
Select  '03-21-13 12/13/14/15'
Union All
Select  '03-25-13 17/18/19/20'
Union All
Select  '05-01-13 99/88/77/66'
Union All
Select  '02-01-13 11/22/33/44'

Select  t.TextColumn
From    @tvTable t
Cross Apply dbo.fncDelimitedSplit8k(TextColumn, ' ') split
Where   split.ItemNumber = 1
Order By Cast(split.Item As DateTime) Desc

分割函数取自Jeff Moden Tally OH!