去除最后两位数字

0 sql-server

如果我在表中将 12345678、1234567、123456 作为列并使用 sql 创建一个新列,该列将包含删除每个数字的最后两位数字的新数字。新列将有 123456、12345、1234。

有人会帮忙在 Microsoft sql 环境中编写此代码吗

Hen*_*Eko 6

这只是一个简单的整数除法。

所以选择 (123456/100)。

但唯一有效的是该列是整数类型。

提供的例子很大。如果列是整数,那么使用简单的大小写逻辑就足够了。首先检查该值是否大于 99 然后除以 100,如果不使用它是什么。

Declare @field_name;
Set @field_name = 123456;

Select (case when @field_name > 99 then (@field_name/100) Else @field_name);
Run Code Online (Sandbox Code Playgroud)

将字段名称更改为您希望的任何列,并将查询调整为目标表。

与使用 convert 或 cast 不同,整数除法提供更少的 cpu 周期,因为 cpu 内部有专用的数学块。使用 convert 或 cast 时,您有更多的 cpu 周期,因为它还将包括内存操作。

  • 为什么投反对票?除以 100 似乎有效。我不认为 < 100 的情况是必要的,问题是如何删除最后两位数字。 (6认同)
  • 有些人就是喜欢不喜欢:) (2认同)