您的位置:首页 > 数据库

sql实现IP的整数与字符串转化

2009-11-26 15:20 330 查看
数据库操作:利用函数减少存储空间(以时间换取空间)
例如一个表有IP列,在存储的时候我们为了减少存储空间,可以将它转化为整数,存储在数据库,但是在从数据库里查询并显示给大家看的时候,可能你是看不明白整数具体是什么。这样为了利于大家阅读分析数据,可以在查询的时候利用函数将整数IP转为为字符串
例如:

 
关键就是这个IpToString函数的实现:
 
在“函数”处,右击,选择“新建”,再选择“标量值函数”,在出现的页面里根据提示编写自己的函数,下面的函数是将IP对应的整数转化为字符串
 
 
USE [Test]
GO
/****** Object:  UserDefinedFunction [dbo].[Ip2String]    Script Date: 11/26/2009 11:42:15 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date, ,>
-- Description:	<Description, ,>
-- =============================================
ALTER FUNCTION [dbo].[Ip2String]
(
-- Add the parameters for the function here
@ip int
)
RETURNS nvarchar(16)
AS
BEGIN
-- Declare the return variable here
DECLARE @result nvarchar(16)

-- Add the T-SQL statements to compute the return value here
SELECT @result = Cast ((@ip / power(2,24)) & 0xFF  AS nvarchar) + '.'
+ Cast ((@ip / power(2,16)) & 0xFF  AS nvarchar) + '.'
+ Cast ((@ip / power(2,8)) & 0xFF  AS nvarchar) + '.'
+ Cast (@ip & 0xFF  AS nvarchar)

-- Return the result of the function
RETURN @result

END
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息