最初这是索赔号的样子。 000000165130它有12位数。我想删除左侧的零和右侧的最后一个零,使其成为16513。
从DW.CLAIMDATA中选择[政策编号],左([索赔号],11)[索赔编号],其中[政策编号] ='P000463500'
Policy Number [Claim Number]
P000463500 00000016513
但是如何删除左侧的六个零?
答案 0 :(得分:3)
假设这是固定宽度,您可以使用right
。
right(left([Claim Number],11), 5)
或者,如果零的数量是可变的,则可以转换为整数:
cast(left([Claim Number], 11) as int)
如果你需要它作为字符串代替:
cast(cast(left([Claim Number], 11) as int) as varchar(10))
答案 1 :(得分:0)
这会将varchar转换为int,这将删除前导零。然后它反转数字并再次转换为int以删除尾随零。然后在更长的时间内反转以获得原始字符串而不带前导或尾随零。
SELECT [Policy Number]
REVERSE(CONVERT(VARCHAR(50), CONVERT(INT, REVERSE(CONVERT(VARCHAR(50), CONVERT(INT, [Claim Number])))))) [Claim Number]
FROM DW.CLAIMDATA
WHERE [Policy Number] = 'P000463500'
答案 2 :(得分:0)
假设所有值都是数字并且您总是有一个尾随0,您可以这样做。
CONVERT(INT, [Claim Number]) / 10