Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Apa cara terbaik untuk memanfaatkan huruf pertama dari setiap kata dalam string di SQL Server?

Dari 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

Ada yang lebih sederhana/lebih kecil di sini (tetapi tidak berfungsi jika ada baris yang tidak memiliki spasi, "Parameter panjang tidak valid diteruskan ke fungsi KANAN."):

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. Bagaimana saya bisa membuat kunci utama sebagai AUTOINCREMENT

  2. Apakah Anda Mengukur Kinerja SQL Server dengan Metrik Ini?

  3. Pulihkan Database di SQL Server 2017

  4. Perkirakan Penghematan Kompresi Data di SQL Server

  5. SQL Server membagi CSV menjadi beberapa baris