我有一个SQL Server表,其中包含1
列中的数字:
1234567000015
1424567000016
5849201000018
我需要一个能从数字右侧删除一个数字charindex()
的函数,因此结果必须如下:
substring()
我找到了一些使用scrollObject = dict(direction="down", text="some_text", element=appium_driver_elem.id)
self.driver.execute_script("mobile: scrollTo", scrollObject)
和appium
的解决方案,但我的SQL技能很差,所以我真的需要帮助。
由于
答案 0 :(得分:2)
假设这是varchar数据,这是一个简单的方法来实现这一目标。顺便说一句,我建议你不要使用像#39; no'这样的列名。这是一个保守的词,它非常含糊不清。这是指数字还是相反的是?如果它是数字,我认为最好将列命名为数字是什么。 PartNumber,ItemNumber,CatalogNumber等......
LEFT(no, len(no) - 2) + RIGHT(no, 1)
答案 1 :(得分:0)
尝试使用此查询:
declare @charToReplace char = '1'
select REVERSE(stuff(REVERSE(no), charindex(@charToReplace, REVERSE(no)), 1, ''))
from table
或
declare @charToReplace char = '1'
declare @tmp_table TABLE (NO varchar(16))
insert into @tmp_table
select REVERSE(NO)
from yourtable
select REVERSE(stuff(NO, charindex(@charToReplace, NO), 1, ''))
答案 2 :(得分:0)
对于您的特定数据,如果数字适合BIGINT,一种简单的方法就是将它们视为数字:
<强>设置强>
create table #tmp (
number VARCHAR(16)
)
insert into #tmp values ('12345670000115'), ('14245670000116'), ('58492010000118')
GO
<强>脚本:强>
select number, cast( (cast(number AS bigint) - 100) / 100 * 10 + cast(number AS bigint) % 100 as VARCHAR(16))
from #tmp
GO
答案 3 :(得分:0)
我解决问题。有答案我删除一个字符1并更新整个表格。谢谢大家的帮助!
Update myTableName
set barcode=substring(barcode,1,11)+substring(barcode,13,1)
where len(barcode)>= 14