首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Sql中拆分字符串和整数以找到最大值并将其放入SP或要调用的函数中

如何在Sql中拆分字符串和整数以找到最大值并将其放入SP或要调用的函数中
EN

Stack Overflow用户
提问于 2015-08-19 11:32:37
回答 3查看 2.8K关注 0票数 0

我有一个零售商代码,它是这样的varchar and Int =>RT003880组合

我每天都会创建一个按脚本编写的零售商代码。所以我需要我插入的最后一个零售商代码。

因此,我拆分了Integer and varchar,以求最大值。

这是通过使用查询获得的最大值。

代码语言:javascript
复制
select SUBSTRING(Retailer_code,5,9) as RetailerCode
Into #maxfindtable
from dbo.sample
select MAX(RetailerCode) from #maxfindtable

我需要输入函数或存储过程,如何做到这一点?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-08-19 11:40:53

尝试:

代码语言:javascript
复制
select max(SUBSTRING(RetailerCode,3,len(RetailerCode)-2))

对于RT003880,整数部分从3位置开始,len(RetailerCode)-2定义substring的长度。从3rd位置开始的所有字符

有关更多的清洁信息,请参见超负荷

编辑2:

尝试使用Cast

代码语言:javascript
复制
create table #tab (genId varchar(max))

insert into #tab(genId)
values('RT00031'),('RT00013232'),('RT00034'),('RT00084')

select * from #tab

select max(cast(SUBSTRING(genId,3,len(genId)-2) as int)) from #tab
票数 1
EN

Stack Overflow用户

发布于 2015-08-19 14:57:29

我将RetailerCode分成两列(一个CHAR/VARCHAR和一个INT/SMALLINT/NUMERIC),以便能够从表中获得一些性能。如果请求,可以使用计算列将它们连接起来。但是,如果计算出的列没有持久化,我永远不会查询它。

票数 0
EN

Stack Overflow用户

发布于 2015-08-20 18:39:22

今天我已经插入了10000条新的记录,它选择了错误的最大值。这两个代码都编写了相同的值,最大值为RT0017898,但它显示了RT0009999。在我检查了一个示例数据之后-- RetailerId RetailerCode RetailerName 1 RT00031 mBigBazar 2 RT00034 TBazar 3 RT00084 SaravanaStore It shows Correct Value - 00084 When I have insert a new Record it shows wrongly RetailerId RetailerCode RetailerName 1 RT00031 mBigBazar 2 RT00034 TBazar 3 RT00084 SaravanaStore 4 RT00013232 NewStore,现在它显示了00084 .why --它显示错了吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32094307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档