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

SQL Server:Đặt tất cả các trường hợp UPPER thành trường hợp / trường hợp tiêu đề thích hợp

Chức năng này:

  • "Trường hợp thích hợp" tất cả các từ "TRƯỜNG HỢP LÊN" được phân cách bằng khoảng trắng
  • để riêng "các từ viết thường"
  • hoạt động bình thường ngay cả đối với các bảng chữ cái không phải tiếng Anh
  • có tính di động ở chỗ nó không sử dụng các tính năng ưa thích của các phiên bản máy chủ SQL gần đây
  • có thể dễ dàng thay đổi để sử dụng NCHAR và NVARCHAR để hỗ trợ unicode, cũng như bất kỳ độ dài thông số nào bạn thấy phù hợp
  • định nghĩa khoảng trắng có thể được định cấu hình
CREATE FUNCTION ToProperCase(@string VARCHAR(255)) RETURNS VARCHAR(255)
AS
BEGIN
  DECLARE @i INT           -- index
  DECLARE @l INT           -- input length
  DECLARE @c NCHAR(1)      -- current char
  DECLARE @f INT           -- first letter flag (1/0)
  DECLARE @o VARCHAR(255)  -- output string
  DECLARE @w VARCHAR(10)   -- characters considered as white space

  SET @w = '[' + CHAR(13) + CHAR(10) + CHAR(9) + CHAR(160) + ' ' + ']'
  SET @i = 1
  SET @l = LEN(@string)
  SET @f = 1
  SET @o = ''

  WHILE @i <= @l
  BEGIN
    SET @c = SUBSTRING(@string, @i, 1)
    IF @f = 1 
    BEGIN
     SET @o = @o + @c
     SET @f = 0
    END
    ELSE
    BEGIN
     SET @o = @o + LOWER(@c)
    END

    IF @c LIKE @w SET @f = 1

    SET @i = @i + 1
  END

  RETURN @o
END

Kết quả:

dbo.ToProperCase('ALL UPPER CASE and    SOME lower ÄÄ ÖÖ ÜÜ ÉÉ ØØ ĈĈ ÆÆ')
-----------------------------------------------------------------
All Upper Case and      Some lower Ää Öö Üü Éé Øø Cc Ææ


  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ên cột hoặc số lượng giá trị được cung cấp không khớp với định nghĩa bảng

  2. Thủ thuật điều chỉnh hiệu suất yêu thích

  3. Đếm các bản ghi cho mỗi tháng trong một năm

  4. Bài kiểm tra gợi ý và mẹo quản trị cơ sở dữ liệu Azure SQL (DP-300)

  5. Làm cách nào để chuyển đổi giá trị hàng thành cột có số cột động?