电脑安全

您当前的位置:主页 > 电脑安全 >

server sql 按大小排序的方法-网络编程

来源:[db:来源]标题:   两位数    编辑:电脑技术全能网 时间:2019-09-19 12:34

原标题:server sql 按大小排序的方法-网络编程
   上面应用sql函数存储进程来完成的一种巨细排序的方式

SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER FUNCTION [dbo].[udf_OrderLimitSize] ( @Ov NVARCHAR(30) ) RETURNS decimal(18,6) AS BEGIN --假如长度少于即是2的数值为前往NULL IF (LEN(@Ov) <= 2) RETURN NULL --宣布两个变量 DECLARE @v DECIMAL(18,6),@n DECIMAL(18,6)--推断最初两位数能否为上面这些单元 IF (RIGHT(@Ov,2) NOT IN ('TB','GB','MB','KB')) RETURN NULL --去掉最初两位数以后,把值转为DECIMAL数据范例 SET @n = CONVERT(DECIMAL(18,6),LEFT(@Ov, LEN(@Ov) - 2)) --推断截除最初两位数以后,应用ISNUMERIC推断能否为无效的数值,假如不是前往NULL IF (ISNUMERIC(@n) = 0) RETURN NULL --上面做单元转算,假如赶上有新单元时,能够作响应增加 IF (@Ov LIKE '%TB') SET @v = @n * 1024 * 1024 * 1024 IF (@Ov LIKE '%GB') SET @v = @n * 1024 * 1024 IF (@Ov LIKE '%MB') SET @v = @n * 1024 IF (@Ov LIKE '%KB') SET @v = @n RETURN @v END
实例
CREATE TABLE test(id int identity(1,1),size NVARCHAR(50)) GO INSERT INTO [test] values('23.5mb'),('10gb'),('12.7mb'),('8GB') go SELECT [id],[size] FROM test ORDER BY [dbo].[udf_OrderLimitSize]([size])

上一篇:apache+php+mysql+phpmyadmin简单配置-网络编程

下一篇:没有了