小编典典

SQL:如何从一个整数获取剩余的3个数字

sql

我想从整数中检索要存储在表中的左3个数字。例如,如果int是1234567,则我想检索123。我希望第二个数字(123)也可以是int。我不想将任何内容转换为字符串。

(是的,确实我应该使用字符串。但是我无法控制问题的这一方面。)

谢谢!


阅读 179

收藏
2021-04-22

共1个答案

小编典典

对于SQL Server, 最简单的 方法肯定是:

SELECT CAST(LEFT(CAST(YourInt AS VARCHAR(100)), 3) AS INT)

转换为字符串,使用最左边的三个字符,然后将其转换回INT。

由于仅需要知道要去除多少位数等等内容,所以仅对数字进行处理会很麻烦。

如果您只想使用INT,则必须构造类似的东西(至少您可以在SQL Server中做到这一点-我对Access并不很熟悉,无法知道它是否可以在Access
SQL“方言中工作” ”):

DECLARE @MyInt INT = 1234567

SELECT
    CASE 
        WHEN @MyInt < 1000 THEN @MyInt
        WHEN @MyInt > 10000000 THEN @MyInt / 100000
        WHEN @MyInt > 1000000 THEN @MyInt / 10000
        WHEN @MyInt > 100000 THEN @MyInt / 1000
        WHEN @MyInt > 10000 THEN @MyInt / 100
        WHEN @MyInt > 1000 THEN @MyInt / 10
    END AS 'NewInt'

但这始终是一个近似值-如果您有一个非常非常大的数字…该怎么办呢?

2021-04-22