我有一个
Char(15)
字段,在这个字段中我有以下数据:
94342KMR
947JCP
7048MYC
我需要分解这个,我需要得到最后右边的 3 个字符,我需要得到左边的所有字符。我的问题是左侧的代码并不总是如您所见的相同长度。
如何在 SQL 中完成此操作?
谢谢你
SELECT RIGHT(RTRIM(column), 3),
LEFT(column, LEN(column) - 3)
FROM table
使用
RIGHT
w/ RTRIM
(以避免固定长度列的复杂性),并将 LEFT
与 LEN
结合使用(仅获取您需要的内容,最后 3 个字符除外)。
如果存在长度为 <= 3, then you're probably going to have to use a
CASE
语句的情况,那么 LEFT
调用不会变得贪婪。
您可以使用
RTRIM
或将您的值转换为 VARCHAR
:
SELECT RIGHT(RTRIM(Field),3), LEFT(Field,LEN(Field)-3)
或者
SELECT RIGHT(CAST(Field AS VARCHAR(15)),3), LEFT(Field,LEN(Field)-3)
select right(rtrim('94342KMR'),3)
这将获取最后 3 个正确的字符串。
select substring(rtrim('94342KMR'),1,len('94342KMR')-3)
这将获取剩余的角色。
选择右侧(rtrim('94342KMR'),3) 这将获取最后 3 个正确的字符串。
选择子字符串(rtrim('94342KMR'),1,len('94342KMR')-3) 这将获取剩余的角色。