我在字段中有一个数据为“日期:03-21-13 12/13/14/15
日期:04-21-13 39/12/34/14
日期:04-19-13 19/45/65/12
”。如何根据最近的日期对该字段内的数据进行排序。
它应该看起来像
- 日期:
04-21-13 39/12/34/14
- 日期:
04-19-13 19/45/65/12
- 日期:
03-21-13 12/13/14/15
我在字段中有一个数据为“日期:03-21-13 12/13/14/15
日期:04-21-13 39/12/34/14
日期:04-19-13 19/45/65/12
”。如何根据最近的日期对该字段内的数据进行排序。
它应该看起来像
04-21-13 39/12/34/14
04-19-13 19/45/65/12
03-21-13 12/13/14/15
因为您将其存储为文本,所以您无法直接在列上正确排序(正如您似乎已经发现的那样)。您将需要拆分列,然后对其进行排序。就像是:
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 哦!