zoukankan      html  css  js  c++  java
  • 函数PARSENAME使用和截取字符串

    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) = N'testdb.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
  • 相关阅读:
    第13周作业集
    软件工程结课作业
    第13次作业--邮箱的正则表达式
    第12次作业--你的生日
    第11次作业
    第10次作业
    找回感觉的练习
    第16周作业
    第15周作业
    第14周作业
  • 原文地址:https://www.cnblogs.com/insus/p/10958452.html
Copyright © 2011-2022 走看看