回答
SELECT RIGHT(column, 3)
這就是你需要的。
您也可以用同樣的方法做LEFT()
。
請記住,如果您在WHERE
子句中使用此項,RIGHT()
不能使用任何索引。
你可以用任何一種方式:
SELECT RIGHT(RTRIM(columnName), 3)
OR
SELECT SUBSTRING(columnName, LEN(columnName)-2, 3)
一種優勢比另一種更有優勢嗎? RTRIM是否必要(對我來說似乎是多餘的)? – noelicus
這項工作可以通過幾種方式完成,在這裏我已經通過兩種常見方式進行了展示。第一種情況比第二種情況快。 RTRIM不是強制性的。它僅用於在右側省略任何額外的空間。謝謝 –
因爲更多的途徑來想一想總是好的:
select reverse(substring(reverse(columnName), 1, 3))
不,更多並不總是更好。 –
你說得對。你將永遠擁有你所需要的所有工具來完成你想要做的任何工作。我想,知識並不等於權力。 –
我不確定這是什麼意思。您提出的解決方案不必要的複雜,並且沒有任何情況可能是正確的解決方案。因此,這很糟糕。 –
declare @newdata varchar(30)
set @newdata='IDS_ENUM_Change_262147_190'
select REVERSE(substring(reverse(@newdata),0,charindex('_',reverse(@newdata))))
===說明===
我發現它更易於閱讀這樣寫的:
SELECT
REVERSE(--4.
SUBSTRING(-- 3.
REVERSE(<field_name>),
0,
CHARINDEX(-- 2.
'<your char of choice>',
REVERSE(<field_name>) -- 1.
)
)
)
FROM
<table_name>
- 反向文本
- 尋找具有特異性字符的第一次出現(即第一次出現FROM文本的結尾)。獲取此char的索引
- 再次查看反轉文本。從索引0到char的索引搜索。這給了你正在尋找的字符串,但在反向
- 反轉反轉字符串給你你想要的子
,如果你想找到具體的字符串與期望的字母結尾那麼這將幫助你..
select * from tablename where col_name like '%190'
這不回答這個問題。 OP想知道如何獲得最後3個字符,不管它們是什麼,也不是像190這樣的特定字符串。 – BradleyDotNET
- 1. 如何匹配TSQL中字符串的最後一個字符?
- 2. zabbix - 字符串的最後3個值
- 3. 獲取字符串中的最後一個子字符串?
- 4. Python中刪除字符串的最後3個字符
- 5. 刪除最後一個子字符串
- 6. 刪除字符串的最後3個字母[:-3]
- 7. 最後一個字符串
- 8. tsql子串或字符串操作
- 9. SQL子字符串 - 刪除最後一個字符
- 10. 字符串的第一個字符和最後一個字符
- 11. 從字符串中刪除前3個字符和後3個字符PHP
- 12. 動態刪除最後一個字符串後/從字符串
- 13. 替換字符串中最後出現的子字符串
- 14. 獲取字符串中最後一個子串索引後的字符
- 15. TSQL刪除連接字符串中的最後一個逗號
- 16. 在字符'?'之後從字符串中獲取最後一個字符串
- 17. 將字符串拆分爲3個子字符串jquery/javascript
- 18. PHP子串到字符串中的最後一個數字
- 19. cout:最後一個字符串覆蓋第一個字符串
- 20. 檢索最後一個子字符串和路徑中的最後一個子字符串
- 21. 字符串中最後一個數字
- 22. TSQL Where子句中查詢字符串
- 23. 可變長度TSQL子字符串
- 24. 查找字符串中的所有3個字符長度的子字符串
- 25. 一個字符串的最後3個字符的Ruby正則表達式
- 26. 正則表達式來獲得一個字符串的最後3個字符
- 27. SQL子字符串和最後索引
- 28. 刪除字符串中最後一個空格後的最後一個字符
- 29. 字符串:提取最後六個字符後的最後一個/
- 30. 放棄最後3個字符
如果您*要*以這種方式搜索大量數據,那麼*是一種恢復索引使用的方法。創建一個計算列,該列是相反順序的字符串。那麼什麼是正確的(最不重要的)三個字符現在是左邊的(最重要的)三個字符。然後,您將該列索引並查找「WHERE LEFT(反向,3)= REVERSE('190')'。 (我很無聊,你能告訴嗎?) – MatBailie
謝謝你們! – Jared