資料庫操作:利用函數減少儲存空間(以時間換取空間)
例如一個表有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