我正在寻找任何帮助来连接整数。
示例:
在公司中,员工作为员工编号。 号码是140024。
现在,数字14是年份(取决于日期),需要自动分配。另一个号码0024是我的问题。我可以得到24号,但如果数字小于10,我怎么能加00或000?
所以我需要帮助来连接这一切。并且还希望将其作为INT来使其成为主键。
答案 0 :(得分:1)
你有两个选择:使用varchar或int本身。
示例:
select cast(14 as char(2)) + right('0000' + cast(24 as varchar(4)),4)
或使用int
select 14 * 10000 + 24
当然10000当然是最大数量。它可能是100,1000或更多。但你的数字位数可能是固定的,所以它也应该固定。
答案 1 :(得分:1)
DECLARE @Your_Number INT = 24;
SELECT CAST(RIGHT(YEAR(GETDATE()), 2) AS NVARCHAR(2))
+ RIGHT('000000000' + CAST(@Your_Number AS NVARCHAR), 4) --<-- This 4
RESULT: 140024
数字4
决定年份数字后您想要的总数字数。
答案 2 :(得分:0)
Declare @i int=24
select replicate('0',4-len(cast(@i as varchar(10))))+cast(@i as
varchar(10))
答案 3 :(得分:0)
试试这个..
CREATE FUNCTION [dbo].[fn_GetAutoGeneratedID]
(
@strPart VARCHAR(20),@strSeprator VARCHAR(5),@intPart VARCHAR(10)
)RETURNS VARCHAR(20)
AS
BEGIN
DECLARE @prefix VARCHAR(10)
SET @prefix=(SELECT CASE LEN(@intPart)
WHEN 1 THEN @strSeprator+'0000'+@intPart
WHEN 2 THEN @strSeprator+'000'+@intPart
WHEN 3 THEN @strSeprator+'00'+@intPart
WHEN 4 THEN @strSeprator+'0'+@intPart
ELSE @strSeprator+@intPart
END)
RETURN(SELECT @strPart+@prefix);
END
现在称之为..
SELECT @MyNum=dbo.fn_GetAutoGeneratedID (@yourMonthPart,'',@YourNextpart )