表名是Date,其中一个列的名称是MonthOfYear(对于jan,列值为1,对于feb,它是2,对于march:3 ...),另一列是MonthName:此列包含月的名字(jan,feb,march ..) 我需要看到结果排序(jan是第一个col,然后是feb,然后是march,然后......) 我像这样更新了MonthName,但它不起作用:
update Date
set [monthname] = cast(monthofyear as nvarchar(3)) + ' ' + rtrim(ltrim([monthname]))
答案 0 :(得分:0)
我不知道您的所有列名,但您不想更改MonthName列中的数据。
你试过了吗?
SELECT Year, MonthName
FROM Date
ORDER BY Year, MonthOfYear
要通过varchar列进行排序,您可以在单个数字的前面加上0。
以下是一个示例,说明如何执行此操作:
declare @t table (StringNumber varchar(3))
insert into @t (StringNumber)
select '9' union
select '10' union
select '11'
select StringNumber
from @t
order by StringNumber
select StringNumber, right('0' + StringNumber, 2) as OrderByStringNumber
from @t
order by right('0' + StringNumber, 2)
答案 1 :(得分:0)
你无法在char列上得到你想要的东西 作为char 12将在2之前排序
您需要在整数列上搜索12以在2
之前排序所以在MonthOfYear上排序
Order By MonthOfYear