我正在使用SELECT語句。ORDER BY不按數字順序放置SELECT語句
USE SCRUMAPI2
DECLARE @userParam VARCHAR(100)
,@statusParam VARCHAR(100)
SET @userParam = '%'
SET @statusParam = '%'
SELECT ROW_NUMBER() OVER (
ORDER BY PDT.[Name] DESC
) AS 'RowNumber'
,PDT.[Name] AS Project
,(
CASE WHEN (
STY.KanBanProductId IS NOT NULL
AND STY.SprintId IS NULL
) THEN 'KanBan' WHEN (
STY.KanBanProductId IS NULL
AND STY.SprintId IS NOT NULL
) THEN 'Sprint' END
) AS ProjectType
,STY.[Number] StoryNumber
,STY.Title AS StoryTitle
,TSK.[Name] AS Task
,CONVERT(VARCHAR(20), STY.Effort) AS Effort
,CONVERT(VARCHAR(20), TSK.OriginalEstimateHours) AS OriginalEstimateHours
,TSK.STATUS AS STATUS
FROM Task TSK
LEFT JOIN Story STY ON TSK.StoryId = STY.PK_Story
LEFT JOIN Sprint SPT ON STY.SprintId = SPT.PK_Sprint
LEFT JOIN Product PDT ON STY.ProductId = PDT.PK_Product
WHERE TSK.PointPerson LIKE @userParam
AND TSK.STATUS LIKE @statusParam
GROUP BY STY.[Number]
,TSK.STATUS
,STY.Title
,PDT.[Name]
,TSK.CreateDate
,TSK.[Name]
,STY.KanBanProductId
,STY.SprintId
,TSK.OriginalEstimateHours
,STY.Effort
我的問題是,雖然我有ORDER BY的故事數第一預期它不返回排序中(如下圖列STY [數字]):
正如你可以看到它從33到4到42的敵人,我希望它的數字順序,以便4將在3和5之間而不是33和42.我該如何實現這一目標?
是否所有的名字都以'SUPP-'開頭?您的訂單正在正常工作,您正在對一個字符串進行排序。您需要更改您的代碼,以便按名稱的數字部分進行排序。 – Taryn
您正在對字符字段進行排序,而不是數字。如果您想對此進行特別排序,則需要提取數字部分。 – Andrew
不,有很多字母代碼,但它們都是以相同的格式CMIS-550爲例。 –