我正在使用SQL Server,我有一个4到5个字符长的整型。我有一个报告,cast前3位数字作为位置和最后1到2位数字作为原因。这就是它们的样子
5142 = 514 = paint line 2 = paint to thin:
50528 = 505 = machining 28 = oblong hole:
SELECT [Suspect]
,left(Suspect,3) as SuspectOP
,Right(Suspect,2) as SuspectID
查询返回
5142 = SuspectOP = 514 SuspectID = 42
50528 = SuspectOP = 505 SuspectID = 28
所以我想要读取整型数前3位之后的所有内容
我尝试过的一些事情如下:Select Cast(Suspect as Varchar(5)),
Substring(Suspect,3,2)
和
Select Suspect % 514 as SuspectID
只要前3位数字总是514就可以了,而在我的情况下不是。
可以使用基于长度的条件运算符,如下所示:
SELECT
[Suspect]
, SuspectOP = LEFT(Suspect,3)
, SuspectID = CASE
WHEN LEN(Suspect) = 5 THEN RIGHT(Suspect,2)
ELSE RIGHT(Suspect, 1)
END
请注意,这不是理想的,如果您的用例就像上面提到的那样,您应该真正地将值分开。