首页 > 其他 > 详细

函数PARSENAME使用和截取字符串

时间:2019-06-01 12:58:06      阅读:320      评论:0      收藏:0      [点我收藏+]

MS SQL server有一个函数PARSENAME ( ‘object_name‘ , object_piece )

函数有2个参数:

Object_name
检索的对象名称。即是:服务器名.数据库名.所有者.对象名
Object_piece
是检索的对象类型。其值为1~4。
 
比如,为存储过程或自定义函数传入表名:TABLE_CATALOG.TABLE_SCHEMA. TABLE_NAME.COLUMN_NAME动态操作数据表时。
 
举个列:
技术分享图片
 
 
技术分享图片
DECLARE @str  NVARCHAR(MAX) = Ntestdb.dbo.table_part.qty

SELECT 
PARSENAME(@str,4) AS [TABLE_CATALOG],
PARSENAME(@str,3) AS [TABLE_SCHEMA],
PARSENAME(@str,2) AS [TABLE_NAME],
PARSENAME(@str,1) AS [COLUMN_NAME]
GO
Source Code

 

 另外一个演示,定义一个表变量,随机添加存储一些IP地址:
技术分享图片
 
 
 然后SELECT表,并使用ORDER BY进行排序:
技术分享图片
 
 
这种排序结果,并非是我们想要的,它只是按每一段首数字大小进行排序。
这是为什么,因为这些IP地址,并非是标准IP地址。
把IP地址,转换为标准IP,参考这篇《转换为标准IPv4格式https://www.cnblogs.com/insus/p/10958864.html
以上的这个函数,也有使用PARSENAME函数时行处理。
 
技术分享图片
 
 
技术分享图片
;WITH cte_ips AS
(
    SELECT [IPv4],[dbo].[svf_ConvertToStandardIPv4]([IPv4]) AS [std_ip] FROM @ips
)
SELECT [IPv4],[std_ip] FROM cte_ips
ORDER BY PARSENAME([std_ip],4),
         PARSENAME([std_ip],3),
         PARSENAME([std_ip],2),
         PARSENAME([std_ip],1)
Source Code

 

函数PARSENAME使用和截取字符串

原文:https://www.cnblogs.com/insus/p/10958452.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!