如何使用LEFT&;SQL中的函数是否可以获取最后3个字符?
我有一个如何使用LEFT&;SQL中的函数是否可以获取最后3个字符?,sql,sql-server,tsql,Sql,Sql Server,Tsql,我有一个Char(15)字段,在该字段中我有以下数据: 94342KMR 947JCP 7048MYC 我需要分解这个,我需要得到最后的3个右字符,我需要得到左边的任何字符。我的问题是左边的代码并不总是和你看到的一样长 如何在SQL中实现这一点 多谢各位 SELECT RIGHT(RTRIM(column), 3), LEFT(column, LEN(column) - 3) FROM table 使用RIGHTw/RTRIM(以避免固定长度列的复杂性),使用LEFT
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个字符除外)
如果出现长度的情况,可以使用
RTRIM
或将值强制转换为VARCHAR
:
SELECT RIGHT(RTRIM(Field),3), LEFT(Field,LEN(Field)-3)
或
这里有一个使用 这将获取最后3个正确的字符串
select substring(rtrim('94342KMR'),1,len('94342KMR')-3)
这将获取剩余的字符。那么,既然这是一个
char(15)
您希望得到什么结果?全部空白还是最后3个非空白字符?@KenWhite:OP不使用。你说得对。我看错标签了。我的错-(这里必须是星期一。您真正想要的是两列,其中至少一列应该是varchar或nvarchar。它的char(15)
,因此可能不是您想要的行为。谢谢您的回复。
SELECT
SUBSTRING([Field], LEN([Field]) - 2, 3) [Right3],
SUBSTRING([Field], 0, LEN([Field]) - 2) [TheRest]
FROM
[Fields]
select right(rtrim('94342KMR'),3)
select substring(rtrim('94342KMR'),1,len('94342KMR')-3)