婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 正解SQLSERVER 2005 sql排序(按大小排序)

正解SQLSERVER 2005 sql排序(按大小排序)

熱門標簽:沈陽智能外呼系統代理 電銷機器人虛擬號碼 九鹿林外呼系統怎么收費 松原導航地圖標注 海南自動外呼系統價格 浙江地圖標注 滄州營銷外呼系統軟件 創業電銷機器人 舞鋼市地圖標注app

今天在論壇上看到一個問題,如下:

 

解決這個問題,Insus.NET寫了一個函數,可以方便以后的擴展,如果數值出現TB或是或更高時,可以只改這個函數即可。

復制代碼 代碼如下:

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])

執行結果:

您可能感興趣的文章:
  • SQL SERVER數據庫重建索引的方法
  • sqlserver實現更改字段名
  • SQLServer導入數據圖文方法
  • SQL Server 2005 Express 安裝失敗解決辦法
  • SQL Server2008r2 數據庫服務各種無法啟動問題的解決辦法(詳解)

標簽:日喀則 寶雞 公主嶺 咸寧 商洛 臺灣 西藏 海口

巨人網絡通訊聲明:本文標題《正解SQLSERVER 2005 sql排序(按大小排序)》,本文關鍵詞  正解,SQLSERVER,2005,sql,排序,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《正解SQLSERVER 2005 sql排序(按大小排序)》相關的同類信息!
  • 本頁收集關于正解SQLSERVER 2005 sql排序(按大小排序)的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 南木林县| 湾仔区| 四平市| 昆山市| 安溪县| 进贤县| 凤阳县| 民权县| 霞浦县| 朝阳区| 华坪县| 鹰潭市| 宜阳县| 奈曼旗| 固镇县| 梁河县| 镇巴县| 且末县| 深泽县| 丹东市| SHOW| 巨野县| 东平县| 缙云县| 江城| 上饶县| 岳西县| 阜新市| 望城县| 海南省| 西藏| 鱼台县| 礼泉县| 全南县| 庄浪县| 金秀| 洱源县| 安龙县| 横峰县| 镇宁| 滦南县|