Tôi có một cột SQL với chiều dài là 6. Bây giờ chỉ muốn lấy char đầu tiên của cột đó. Có bất kỳ chức năng chuỗi trong SQL để làm điều này?Cách lấy ký tự đầu tiên của chuỗi trong SQL?
Trả lời
LEFT(colName, 1)
cũng sẽ làm điều này. Nó tương đương với SUBSTRING(colName, 1, 1)
.
Tôi thích LEFT
, vì tôi thấy nó sạch hơn một chút, nhưng thực sự, không có sự khác biệt nào cả.
SUBSTRING (MyColumn, 1 , 1)
cho ký tự đầu tiên và SUBSTRING (MyColumn, 1 , 2)
cho hai ký tự đầu tiên.
tôi thích:
SUBSTRING (my_column, 1, 1)
vì nó là tiêu chuẩn SQL-92 cú pháp và do đó hơn xách tay.
Nói đúng ra, phiên bản tiêu chuẩn sẽ là
SUBSTRING (my_column FROM 1 FOR 1)
Vấn đề là, chuyển từ một đến khác, vì thế đối với bất kỳ sự thay đổi nhà cung cấp tương tự, là tầm thường.
p.s. Chỉ gần đây tôi mới chỉ ra rằng các chức năng trong SQL tiêu chuẩn được cố ý ngược lại, bằng cách có các danh sách tham số không phải là các dấu phẩy thông thường, để làm cho chúng dễ nhận biết như là từ tiêu chuẩn!
Cảm ơn bạn, LEFT (str, n) không được hỗ trợ bởi nhiều định dạng (bao gồm cả định dạng tôi đang sử dụng). – GreySage
Nếu bạn tìm kiếm các char đầu tiên của chuỗi trong Sql chuỗi
SELECT CHARINDEX('char', 'my char')
=> return 4
ĐẦU VÀO
STRMIDDLENAME
--------------
Aravind Chaterjee
Shivakumar
Robin Van Parsee
SELECT STRMIDDLENAME,
CASE WHEN INSTR(STRMIDDLENAME,' ',1,2) != 0 THEN SUBSTR(STRMIDDLENAME,1,1) || SUBSTR(STRMIDDLENAME,INSTR(STRMIDDLENAME,' ',1,1)+1,1)||
SUBSTR(STRMIDDLENAME,INSTR(STRMIDDLENAME,' ',1,2)+1,1)
WHEN INSTR(STRMIDDLENAME,' ',1,1) != 0 THEN SUBSTR(STRMIDDLENAME,1,1) || SUBSTR(STRMIDDLENAME,INSTR(STRMIDDLENAME,' ',1,1)+1,1)
ELSE SUBSTR(STRMIDDLENAME,1,1)
END AS FIRSTLETTERS
FROM Dual;
OUTPUT
STRMIDDLENAME FIRSTLETTERS
--------- -----------------
Aravind Chaterjee AC
Shivakumar S
Robin Van Parsee RVP
SELECT SUBSTR(thatColumn, 1, 1) As NewColumn from student
Nó là đơn giản để đạt được điều này bằng cách làm theo:
DECLARE @SomeString NVARCHAR(20) = 'This is some string'
DECLARE @Result NVARCHAR(20)
và
SET @Result = SUBSTRING(@SomeString, 2, 3)
SELECT @Result
@Result: his
-HOẶC-
SET @Result = LEFT(@SomeString, 6)
SELECT @Result
@Result: This i
- 1. Twig: Cách lấy ký tự đầu tiên trong một chuỗi
- 2. Lấy và xóa ký tự đầu tiên của chuỗi
- 3. Python: Lấy ký tự đầu tiên của chuỗi đầu tiên trong danh sách?
- 4. Xóa ký tự đầu tiên của chuỗi
- 5. Remove ký tự đầu tiên của một chuỗi trong Bash
- 6. Cách tìm ký tự đầu tiên trong chuỗi C++
- 7. Mysql cắt chuỗi, ký tự đầu tiên?
- 8. cách xóa 3 ký tự đầu tiên khỏi chuỗi nsstring?
- 9. Cách lấy n ký tự đầu tiên của một biến trong Bash?
- 10. cần phải cắt bớt 11 ký tự đầu tiên khỏi một chuỗi trong SQL
- 11. Làm cách nào để xóa ký tự đầu tiên và cuối cùng của chuỗi?
- 12. Cách lấy số ký tự trong chuỗi trong SQL Giao dịch, cách "khác"
- 13. C# logic để lấy ký tự đầu tiên không lặp lại (khác biệt) từ chuỗi
- 14. Remove ký tự đầu tiên từ chuỗi nếu 0
- 15. Xóa N ký tự đầu tiên khỏi chuỗi
- 16. Smarty substr chuỗi bỏ qua ký tự đầu tiên
- 17. Tách ký tự đầu tiên của các từ
- 18. Cách lấy phần tử đầu tiên trong một chuỗi?
- 19. T-SQL: Cách lấy độ dài chính xác của một chuỗi ký tự?
- 20. Javascript: Cách lấy 4 số đầu tiên trong chuỗi?
- 21. Cách lấy n ký tự đầu tiên trong tập tin dữ liệu unix
- 22. Làm cách nào để sử dụng VBScript để tách các ký tự đầu tiên của chuỗi?
- 23. Thay đổi ký tự đầu tiên trong mỗi từ của một chuỗi sang chữ hoa
- 24. Làm thế nào để bạn kéo 100 ký tự đầu tiên của một chuỗi trong PHP
- 25. Cách kiểm tra ký tự đầu tiên trong một chuỗi trong unix
- 26. Xóa 3 ký tự đầu tiên và 3 ký tự cuối cùng từ chuỗi PHP
- 27. Ký tự dấu và ký tự trong chuỗi SQL
- 28. Nhận ký tự đầu tiên của một chuỗi, đó là giọng Pháp
- 29. Cách hiệu quả để lấy phần tử thiếu đầu tiên trong chuỗi thứ tự?
- 30. Ký tự đầu tiên viết hoa Lua
Tôi không biết về SQL server, nhưng logic một máy chủ cơ sở dữ liệu có thể tối ưu hóa LEFT tốt hơn SUBSTRING khi nó đang sử dụng một chỉ mục. – thomasrutter
@thomasrutter, Nhìn vào một kế hoạch thực hiện, SQL Server (ít nhất là 2008R2) nội bộ dịch 'LEFT (colName, length)' thành 'SUBSTRING (colName, 1, length)'. Vì vậy, ** không có bất kỳ tối ưu hóa nào ** ở đây, nó chỉ là một sở thích. –