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

Cách tốt nhất để viết hoa chữ cái đầu tiên của mỗi từ trong một chuỗi trong SQL Server là gì

Từ http://www.sql-server-helper.com/functions/initcap.aspx

CREATE FUNCTION [dbo].[InitCap] ( @InputString varchar(4000) ) 
RETURNS VARCHAR(4000)
AS
BEGIN

DECLARE @Index          INT
DECLARE @Char           CHAR(1)
DECLARE @PrevChar       CHAR(1)
DECLARE @OutputString   VARCHAR(255)

SET @OutputString = LOWER(@InputString)
SET @Index = 1

WHILE @Index <= LEN(@InputString)
BEGIN
    SET @Char     = SUBSTRING(@InputString, @Index, 1)
    SET @PrevChar = CASE WHEN @Index = 1 THEN ' '
                         ELSE SUBSTRING(@InputString, @Index - 1, 1)
                    END

    IF @PrevChar IN (' ', ';', ':', '!', '?', ',', '.', '_', '-', '/', '&', '''', '(')
    BEGIN
        IF @PrevChar != '''' OR UPPER(@Char) != 'S'
            SET @OutputString = STUFF(@OutputString, @Index, 1, UPPER(@Char))
    END

    SET @Index = @Index + 1
END

RETURN @OutputString

END
GO

Có một cái đơn giản hơn / nhỏ hơn ở đây (nhưng không hoạt động nếu bất kỳ hàng nào không có khoảng trắng, "Tham số độ dài không hợp lệ được truyền cho hàm RIGHT."):

http://www.devx.com/tips/Tip/17608



  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 kiểu DATETIME của SQL Server tiết kiệm thời gian trong tích tắc 1/300 giây?

  2. Sự khác biệt giữa các phép chuyển đổi Kết hợp Tham gia và Tra cứu trong SSIS là gì?

  3. Cách gắn / mở khóa truy vấn Windows và các tab khác trong SQL Server Management Studio (SSMS) - Hướng dẫn SQL Server / TSQL Phần 21

  4. cách hiệu quả để triển khai phân trang

  5. Tính tổng chi phí sở hữu theo dõi máy chủ SQL của bạn