我想知道如何将体积数据存储在数据库中(一瓶的体积)。目前,我的桌子是这样设置的。
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
感谢您的协助
在大小列中有两个数据值。您应该将其分为两列。这将解决排序问题。
现在,如果您要坚持现有的数据库结构,则可以使用表达式并按该表达式排序。如果使用这种方法的数据集较大,则性能会受到影响。
SELECT
idSize, Size, SUBSTRING([Size], CHARINDEX('-', [Size]) + 1, 50) AS mlSize
FROM
LookupSize
ORDER BY
mlSize ASC
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句