选择最后6位数的存储过程

kor*_*ler 5 sql sql-server stored-procedures

我在SQL表中有一个数字字段,其中包含一个大数字(9位数,一个客户信息编号).我想运行一个存储过程,它只会选择数字的最后6位数.

就像是:

SELECT (Last 6 Digits of num) FROM db
WHERE user = @user
Run Code Online (Sandbox Code Playgroud)

有谁知道这样做的方法?

Jon*_*onH 19

DECLARE @bigOne bigint

SET @bigOne = 999333444

SELECT RIGHT(@bigOne, 6)
Run Code Online (Sandbox Code Playgroud)

返回具有指定字符数的字符串的右侧部分.这是该Right()功能的MSDN :http: //msdn.microsoft.com/en-us/library/ms177532.aspx

在你的情况下,你可以做:

SELECT RIGHT(num, 6) FROM db WHERE user=@user

只需num从数据库表中替换列的名称,然后更改db为您所在表的名称SELECT.


jam*_*man 5

假设是一种数值数据类型,您可以使用运算符轻松提取最后6位num数字:

select num % 1000000 as num
from db
where user = ?
Run Code Online (Sandbox Code Playgroud)

  • 当您使用数值数据类型时,它比字符串转换更快. (2认同)