Как использовать LEFT & RIGHT Functions в SQL для получения последних 3 символов?
У меня есть поле Char(15)
, в этом поле у меня есть следующие данные:
94342KMR
947JCP
7048MYC
Мне нужно сломать это, мне нужно получить последние ПРАВЫЕ 3 символа, и мне нужно получить все, что есть в LEFT. Моя проблема в том, что код на LEFT не всегда такой же длины, как вы можете видеть.
Как я могу выполнить это в SQL?
Спасибо
Ответы
Ответ 1
SELECT RIGHT(RTRIM(column), 3),
LEFT(column, LEN(column) - 3)
FROM table
Используйте RIGHT
w/ RTRIM
(чтобы избежать осложнений с столбцом фиксированной длины) и LEFT
в сочетании с LEN
(чтобы получить только то, что вам нужно, освободить от последних 3 символов).
если в какой-либо ситуации длина <= 3, вам, вероятно, придется использовать оператор CASE
, поэтому вызов LEFT
не будет жадным.
Ответ 2
Вы можете использовать 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)
Ответ 3
Здесь альтернатива, использующая SUBSTRING
SELECT
SUBSTRING([Field], LEN([Field]) - 2, 3) [Right3],
SUBSTRING([Field], 0, LEN([Field]) - 2) [TheRest]
FROM
[Fields]
с скрипкой
Ответ 4
select right(rtrim('94342KMR'),3)
Это позволит получить последние 3 строки справа.
select substring(rtrim('94342KMR'),1,len('94342KMR')-3)
Это приведет к отображению оставшихся символов.