哪一种效率更高?
现有一个代码翻译函数供查询语句使用,以下两种写法,哪种方案效率更高一些呢?
方案一:
方案二:
表结构如下:
示例数据:
方案一:
crate function [dbo].[KSO_fn_CityTranslation]
(
@Citys varchar(60)
)
RETURNS varchar(200)
As
Begin
declare @Result varchar(200)
declare @S1 varchar(60)
declare @S2 varchar(60)
declare @Pos int
declare @Tmp varchar(40)
set @S1 = @Citys
set @Result = ''
while (@S1 <> '')
begin
set @Pos = charindex(',', @S1)
if @Pos > 0
begin
set @S2 = substring(@S1, 1, @Pos - 1)
set @S1 = substring(@S1, @Pos + 1, 200)
end
else
begin
set @S2 = @S1
set @S1 = ''
end
if @S2 <> ''
begin
set @Tmp = null
select @Tmp = IsNull(City, @S2) From KSO_tb_b_city Where Code = @S2 and DeleteFlag = 0
if @Tmp is not null
set @Result = @Result + @Tmp + ','
end
end
if @Result <> ''
begin
if substring(@Result, Len(@Result), 1) = ','
begin
set @Result = substring(@Result, 1, Len(@Result) - 1)
end
end
return @Result
End
方案二:
crate function [dbo].[KSO_fn_CityTranslation]
(
@Citys varchar(60)
)
RETURNS varchar(200)
As
Begin
declare @Result varchar(200)
Select @Result = IsNull(@Result + ',', '') + City
From KSO_tb_b_City Where charindex(Code + ',', @Citys + ',') > 0
return @Result
End
表结构如下:
CREATE TABLE [dbo].[KSO_tb_b_City](
[Code] [varchar](3) NOT NULL,
[City] [varchar](40) NULL,
[DeleteFlag] [bit] NULL,
[IsDefault] [bit] NULL,
[CreateTime] [datetime] NULL,
[CreateOperator] [varchar](20) NULL,
[LastUpdateTime] [datetime] NULL,
[LastUpdateOperator] [varchar](20) NULL,
[ByNo] [varchar](4) NULL,
[ShortName] [varchar](2) NULL,
CONSTRAINT [PK_EA_tb_b_City] PRIMARY KEY CLUSTERED
(
[Code] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
示例数据:
INSERT INTO dbo.KSO_tb_b_City ( Code, City, DeleteFlag, IsDefault, CreateTime, CreateOperator, LastUpdateTime, LastUpdateOperator, ByNo, ShortName )
VALUES ( '010', '北京', 0, 1, NULL, NULL, NULL, NULL, NULL, '京' )
go
INSERT INTO dbo.KSO_tb_b_City ( Code, City, DeleteFlag, IsDefault, CreateTime, CreateOperator, LastUpdateTime, LastUpdateOperator, ByNo, ShortName )
VALUES ( '020', '广州', 0, 0, NULL, NULL, NULL, NULL, NULL, '穗' )
go
INSERT INTO dbo.KSO_tb_b_City ( Code, City, DeleteFlag, IsDefault, CreateTime, CreateOperator, LastUpdateTime, LastUpdateOperator, ByNo, ShortName )
VALUES ( '021', '上海', 0, 0, NULL, NULL, NULL, NULL, '', '沪' )
go
INSERT INTO dbo.KSO_tb_b_City ( Code, City, DeleteFlag, IsDefault, CreateTime, CreateOperator, LastUpdateTime, LastUpdateOperator, ByNo, ShortName )
VALUES ( '022', '天津', 0, 0, '12/23/2005 12:38:24.140 PM', 'F010033', '12/23/2005 12:38:24.140 PM', 'F010033', '', '' )
go
INSERT INTO dbo.KSO_tb_b_City ( Code, City, DeleteFlag, IsDefault, CreateTime, CreateOperator, LastUpdateTime, LastUpdateOperator, ByNo, ShortName )
VALUES ( '023', '重庆', 0, 0, '12/23/2005 12:40:35.827 PM', 'F010033', '12/23/2005 12:40:35.827 PM', 'F010033', '', '' )
go
INSERT INTO dbo.KSO_tb_b_City ( Code, City, DeleteFlag, IsDefault, CreateTime, CreateOperator, LastUpdateTime, LastUpdateOperator, ByNo, ShortName )
VALUES ( '024', '沈阳', 0, 0, '12/23/2005 12:29:21.500 PM', 'F010033', '12/23/2005 12:29:21.500 PM', 'F010033', '', '' )
go
...全文
相关推荐
更高的兽医
"更高的兽医"项目似乎是一个基于PHP开发的在线兽医服务平台。从项目名称来看,它可能专注于提升兽医服务的质量和效率,或者提供一个供兽医与宠物主人交流的平台。
比Math类库abs()方法性能更高的取绝对值方法介绍
因此,本文将介绍一种比 Math 类库 abs() 方法性能更高的取绝对值方法。
一种将Python速度提高1000倍的解决方案.docx
对比之下,静态类型的C、C#、Node.js和Java等语言,它们的执行效率更高。C语言的实现仅需9毫秒,C#用时19毫秒,Node.js为26毫秒,而Java更是只需5毫秒。
专题资料(2021-2022年)「简化工作提高效率」演讲稿全文.doc
同时,演讲者还强调,改善不应该只是一种对问题的补救措施,更应是一种持续进步的动力。改善工作流程、提高效率并非单纯地弥补不足,而是在现有基础上追求更高水平的表现。
swift 提高UI编写效率,常用方法集合.zip
这些技巧和方法的掌握,将帮助开发者在Swift UI编程中实现更高的效率和代码质量。


疑难问题
