Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

sql để chọn ra một chuỗi tên người và xuất ra các chữ cái đầu

Điều này sẽ hoạt động cho cả kết hợp "Firstname Lastname" và "Firstname Middlename Lastname".

DECLARE @name AS NVARCHAR(50) 
SET @name = 'Firstname Middle Lastname' 


SELECT SUBSTRING(@name, 1, 1) +     --First initial
    SUBSTRING(@name, CHARINDEX(' ', @name) + 1, 1) +    --Middle/Last initial
    CASE WHEN 0 <>  CHARINDEX(' ', @name, CHARINDEX(' ', @name) + 1) -- More than two words 
        THEN SUBSTRING(@name, CHARINDEX(' ', @name, CHARINDEX(' ', @name) + 1) + 1, 1)  --Last initial
    ELSE '' --Have to add empty string to avoid NULLing entire result
    END

Tất nhiên, nếu người dùng có khoảng trắng trong một trong những tên của họ vì lý do nào đó, bạn sẽ gặp vấn đề khi phân tích cú pháp này, nhưng tôi nghi ngờ rằng đó sẽ là trường hợp dù sao khi không lưu trữ tên của bạn trong các trường riêng biệt.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tại sao tôi không thể đặt một ràng buộc đối với nvarchar (max)?

  2. Chèn giá trị từ Bảng khác trong máy chủ sql 2008

  3. 50 câu hỏi phỏng vấn máy chủ SQL hàng đầu bạn phải chuẩn bị vào năm 2022

  4. SQL - Làm cách nào để chỉ lấy các số sau số thập phân?

  5. Khôi phục lỗi ném giao dịch lồng nhau trong TSQL