如何在SQL Server中存储产品量

杰夫·赫利

我想知道如何将体积数据存储在数据库中(一瓶的体积)。目前,我的桌子是这样设置的。

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                                       

感谢您的协助

蒂娜·塞巴斯蒂安(Tina Sebastian)

在大小列中有两个数据值。您应该将其分为两列。这将解决排序问题。

现在,如果您要坚持现有的数据库结构,则可以使用表达式并按该表达式排序。如果使用这种方法的数据集较大,则性能会受到影响。

SELECT        
 idSize, Size, SUBSTRING([Size], CHARINDEX('-', [Size]) + 1, 50) AS mlSize
FROM            
 LookupSize
ORDER BY 
 mlSize ASC

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章