我想知道如何将容量数据存储在我的数据库中(瓶子的体积)。目前我的桌子是这样设置的。
CREATE TABLE [dbo].[LookupSize]
(
[idSize] [int] IDENTITY(1,1) NOT NULL,
[Size] [nchar](50) NULL,
CONSTRAINT [PK_LookupSize] PRIMARY KEY CLUSTERED
)我的储藏室看起来像这样
1 12oz-355ml
2 12.5oz-375ml
3 12.9oz-382ml
4 10oz-296ml
5 11oz-330ml
etc如何对这些数据进行排序,或者是否有更好的方法来构造表。我用这个作为查找表。现在,它排序与十进制在整个数字之前。
ID Size
3 10oz-296ml
15 11.5oz-340ml
13 11oz-330ml
18 12.5oz-375ml
1022 12.9oz-382ml
4 12oz-355ml
1020 13.5oz-400ml这是我使用的查询
SELECT
idSize, Size
FROM
LookupSize
ORDER BY
Size ASC我如何排序才能达到这个结果?
ID Size
3 10oz-296ml
13 11oz-330ml
15 11.5oz-340ml
18 12.5oz-375ml
4 12oz-355ml
1022 12.9oz-382ml
1020 13.5oz-400ml 谢谢你的帮助
发布于 2018-11-25 03:27:55
Size列中有两个数据值。你应该把它分成两列。这将解决排序问题。
现在,如果您想坚持现有的数据库结构,您可以使用一个表达式并根据该表达式进行排序。在使用这种方法处理大数据集时,性能将受到影响。
SELECT
idSize, Size, SUBSTRING([Size], CHARINDEX('-', [Size]) + 1, 50) AS mlSize
FROM
LookupSize
ORDER BY
mlSize ASChttps://stackoverflow.com/questions/53461482
复制相似问题