根据编号取得完整名称。
2015-03-27 15:44
183 查看
IF EXISTS (SELECT * FROM sysobjects
WHERE name = N'[fun_TZJMC]')
DROP FUNCTION [dbo].[fun_TZJMC]
GO
CREATE FUNCTION [dbo].[fun_TZJMC] (@tcid int)
RETURNS varchar(4000)
AS
BEGIN
DECLARE @pid int, @tid int; -- 编号
DECLARE @p1 int, @p2 int; -- 搜索位置
DECLARE @path varchar(1000); -- 指定路径
DECLARE @spec varchar(200), @CurSpec varchar(200); -- 名称
DECLARE @Result varchar(4000); --全称
SET @Result = '';
-- 取得指定路径、名称
SELECT @path = JDQXZ, @CurSpec = ISNULL(ZJMC, '无名称')
FROM TZJMC WHERE ID = @tcid;
-- 如果路径为空则直接返回名称
IF (@path IS NULL) OR (LEN(@path) = 0)
RETURN @CurSpec;
SET @p1 = 0;
SET @p2 = CHARINDEX(',', @path, @p1);
WHILE @p2 <> 0
BEGIN
-- 取得编号
SET @pid = CONVERT(int, SUBSTRING(@path, @p1, @p2 - @p1));
SET @p1 = @p2+1 ; -- 移动搜索起始位置
IF @pid <> 0
BEGIN
SELECT @spec = ISNULL(ZJMC, '无名称')
FROM TZJMC WHERE ID = @pid;
SET @Result = @Result + @spec + '>>';
END;
-- 下一个
SET @p2 = CHARINDEX(',', @path, @p1);
END;
SET @Result = @Result + @CurSpec;
RETURN @Result;
END
WHERE name = N'[fun_TZJMC]')
DROP FUNCTION [dbo].[fun_TZJMC]
GO
CREATE FUNCTION [dbo].[fun_TZJMC] (@tcid int)
RETURNS varchar(4000)
AS
BEGIN
DECLARE @pid int, @tid int; -- 编号
DECLARE @p1 int, @p2 int; -- 搜索位置
DECLARE @path varchar(1000); -- 指定路径
DECLARE @spec varchar(200), @CurSpec varchar(200); -- 名称
DECLARE @Result varchar(4000); --全称
SET @Result = '';
-- 取得指定路径、名称
SELECT @path = JDQXZ, @CurSpec = ISNULL(ZJMC, '无名称')
FROM TZJMC WHERE ID = @tcid;
-- 如果路径为空则直接返回名称
IF (@path IS NULL) OR (LEN(@path) = 0)
RETURN @CurSpec;
SET @p1 = 0;
SET @p2 = CHARINDEX(',', @path, @p1);
WHILE @p2 <> 0
BEGIN
-- 取得编号
SET @pid = CONVERT(int, SUBSTRING(@path, @p1, @p2 - @p1));
SET @p1 = @p2+1 ; -- 移动搜索起始位置
IF @pid <> 0
BEGIN
SELECT @spec = ISNULL(ZJMC, '无名称')
FROM TZJMC WHERE ID = @pid;
SET @Result = @Result + @spec + '>>';
END;
-- 下一个
SET @p2 = CHARINDEX(',', @path, @p1);
END;
SET @Result = @Result + @CurSpec;
RETURN @Result;
END
相关文章推荐
- 根据输入网络服务名称取得端口号
- 根据窗口句柄如何取得其对应的应用程序名称和路径?
- java根据方法名称取得反射方法的参数类型示例
- C# 根据对象类完整名称,创建对象实例
- mysql实现函数,能够根据权利人的编号查出权利人的名称
- Android根据包名取得指定程序包的信息(名称、图标……)
- 根据品牌和小类名称取得对应的客户资料(可用)
- 根据网卡名称编号获取指定网卡的IP地址
- PowerDesigner 12.5 开启注释列 将Comment(注释)及Name(名称)内容互相COPY的VBS代码 根据名称生成注释(完整示例)
- Android根据包名取得指定程序包的信息(名称、图标……)
- PowerDesigner 12.5 开启注释列 将Comment(注释)及Name(名称)内容互相COPY的VBS代码 根据名称生成注释(完整示例)
- 根据驱动名称取得设备
- 根据编号输出课程名称
- 如何在GridView中根据列名称取得Column索引值?
- C# 根据对象类完整名称,创建对象实例
- java作业:根据编号输出课程名称(仅记录思路)
- 根据会员编号、会员名称、会员积分、店铺编号查询数据的简单方法(sql语句)
- PowerDesigner 12 根据名称生成注释(完整示例)
- 根据名称取得存储过程(或函數)的内容
- PowerDesigner 12 根据名称生成注释(完整示例)