Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用LEFT&;SQL中的函数是否可以获取最后3个字符?_Sql_Sql Server_Tsql - Fatal编程技术网

如何使用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)