我想从要存储在表中的整数中检索剩下的 3 个数字。例如,如果int是1234567,我想检索123。我希望第二个数字(123)也是一个int;我不想将任何内容转换为字符串。
(是的,我确实应该使用字符串。但我无法控制问题的这方面。)
谢谢!
最佳答案
对于 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'
但这始终是一个近似值 - 如果你有一个非常非常大的数字怎么办......它可能会被遗漏......
关于SQL:如何从 int 中获取剩下的 3 个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2640048/