Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SQL Server:Направете всички главни букви в правилен регистър/заглавие

Тази функция:

  • „Правилни регистри“ всички „ГОРНИ РЕГИСТРИ“ думи, които са разделени с интервал
  • оставя думите с малки букви на мира
  • работи правилно дори за неанглийски азбуки
  • е преносим, ​​тъй като не използва фантастични функции на последните версии на SQL сървър
  • може лесно да бъде променен за използване на NCHAR и NVARCHAR за поддръжка на unicode, както и всяка дължина на параметъра, която сметнете за подходяща
  • дефиницията на бялото пространство може да бъде конфигурирана
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

Резултат:

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. Разберете дали дадена таблица е разделена в SQL Server (T-SQL)

  2. Какви са различните типове ограничения, налични в SQL Server - SQL Server / T-SQL урок, част 50

  3. Как да сравня 2 реда от една и съща таблица (SQL Server)?

  4. Как да използвам ROW_NUMBER()?

  5. Как мога да вмъкна 10 милиона записа за възможно най-кратко време?