`
joerong666
  • 浏览: 417887 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

sql server ---针对字符串@departmentCode,从右边算起,如果一定数量(如2

阅读更多

DROP FUNCTION computeExaminePurview
GO
/**
* 针对字符串@departmentCode,从右边算起,如果一定数量(如2个字符)的字符满足指定的字符,
* 则级别加1,最终返回级别的值
*/
CREATE FUNCTION computeExaminePurview
(
    @departmentCode varchar(100)
)
RETURNS int
AS
BEGIN
    DECLARE @purview int
    DECLARE @str varchar(100)
    DECLARE @splitCharCount int
    DECLARE @purviewChar varchar(100)

    SET @purview = 1;
    SET @splitCharCount = 2   
    SET @purviewChar = '00'
    SET @str = @departmentCode
    WHILE LEN(@str) > 0
    BEGIN
        --从右往左算,每@splitCharCount个字符如果与预定的@purviewChar相同,则级别加1
        IF RIGHT(@str,@splitCharCount) = @purviewChar
            SET @purview = @purview + 1
        ELSE
            --若有一个不满足条件,则返回,无需继续计算
            RETURN @purview
       
        --将@str用左边剩余的字符重新赋值
        IF LEN(@str) >= @splitCharCount
            SET @str = LEFT(@str,LEN(@str) - @splitCharCount)
        ELSE
            SET @str = ''
    END

    RETURN @purview
END

select dbo.computeExaminePurview('400000'),dbo.computeExaminePurview('440010'),dbo.computeExaminePurview('440200')
 -- column1     column2     column3   
 ----------  ----------  ----------
 -- 3           1           2         

分享到:
评论

相关推荐

    SQL常用命名集合.pdf

    查询条件可以是各种比较运算符(如=, >, <等)、范围条件(BETWEEN...AND...)、集合条件(IN, NOT IN)和字符匹配(LIKE)等。例如,查找所有年龄在18到25之间的学生: ```sql SELECT * FROM Students WHERE Age ...

    数据库系统原理与开发-PostgreSQL数据库SQL实践.ppt

    在本文档中,我们主要探讨了数据库系统原理与开发,特别是使用PostgreSQL数据库进行SQL实践。PostgreSQL是一种功能强大的开源关系型数据库管理系统,被广泛应用于各种工程项目管理系统的开发。 首先,我们关注如何...

    数据库原理、技术及应用习题汇编.doc

    - Medical(PatientID, , Disease, BedNumber, WardNumber, WardLocation, BedCount, DoctorID, Doctor, Title, DepartmentCode, DepartmentName, DepartmentLocation, DepartmentHead) - 拆分为: - Patient...

    Hibernate一对多使用非主键关联设置

    在Hibernate中实现这种关系,我们不一定要依赖主键作为关联字段,而是可以使用非主键关联。下面我们将详细探讨如何在Hibernate中设置一对多非主键关联。 首先,我们需要理解在Hibernate中一对多关联的基本概念。在...

    JavaScript Ajax Json实现上下级下拉框联动效果实例代码

    `change()`函数通过获取当前选中的部门代码(`departmentCode`),使用Ajax向服务器请求数据,然后根据返回的JSON数据动态更新人员下拉框的选项。 ### 知识点三:Ajax技术 Ajax(异步JavaScript和XML)是一种在...

Global site tag (gtag.js) - Google Analytics