Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jaki jest najlepszy sposób na pisanie wielką literą każdego słowa w ciągu w SQL Server

Z 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

Jest tutaj prostszy/mniejszy (ale nie działa, jeśli w żadnym wierszu nie ma spacji, „Nieprawidłowy parametr długości przekazany do funkcji PRAWO.”):

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. Uzyskiwanie Hibernate i SQL Server do przyjemnej zabawy z VARCHAR i NVARCHAR

  2. Pobieranie maksymalnej wartości z wierszy i dołączanie do innej tabeli

  3. Wyszukiwanie pełnotekstowe nie działa, jeśli dołączono słowo zatrzymania, mimo że lista słów zatrzymania jest pusta

  4. ADO.net SqlTransaction poprawia wydajność

  5. Dziennik transakcji SQL Server, część 1:Podstawy rejestrowania