sql實現IP的整數與字串轉化

來源:互聯網
上載者:User

資料庫操作:利用函數減少儲存空間(以時間換取空間)

例如一個表有IP列,在儲存的時候我們為了減少儲存空間,可以將它轉化為整數,儲存在資料庫,但是在從資料庫裡查詢並顯示給大家看的時候,可能你是看不明白整數具體是什麼。這樣為了利於大家閱讀分析資料,可以在查詢的時候利用函數將整數IP轉為為字串

例如:

 

關鍵就是這個IpToString函數的實現:

 

在“函數”處,右擊,選擇“建立”,再選擇“純量值函式”,在出現的頁面雷根據提示編寫自己的函數,下面的函數是將IP對應的整數轉化為字串

 

 USE [Test]<br />GO<br />/****** Object: UserDefinedFunction [dbo].[Ip2String] Script Date: 11/26/2009 11:42:15 ******/<br />SET ANSI_NULLS ON<br />GO<br />SET QUOTED_IDENTIFIER ON<br />GO<br />-- =============================================<br />-- Author:<Author,,Name><br />-- Create date: <Create Date, ,><br />-- Description:<Description, ,><br />-- =============================================<br />ALTER FUNCTION [dbo].[Ip2String]<br />(<br />-- Add the parameters for the function here<br />@ip int<br />)<br />RETURNS nvarchar(16)<br />AS<br />BEGIN<br />-- Declare the return variable here<br />DECLARE @result nvarchar(16)</p><p>-- Add the T-SQL statements to compute the return value here<br />SELECT @result = Cast ((@ip / power(2,24)) & 0xFF AS nvarchar) + '.'<br /> + Cast ((@ip / power(2,16)) & 0xFF AS nvarchar) + '.'<br /> + Cast ((@ip / power(2,8)) & 0xFF AS nvarchar) + '.'<br /> + Cast (@ip & 0xFF AS nvarchar) </p><p>-- Return the result of the function<br />RETURN @result</p><p>END

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.