Я предполагаю, что вы используете запрос из базы данных для извлечения данных с помощью объекта соединения. Исходя из того, что вы сказали здесь, разумный подход был бы:
SELECT UPPER(LEFT([FIELD],1))+LOWER(SUBSTRING([FIELD],2,LEN([FIELD])))
Если у вас есть более одного слова в ваших данных, вам придется создать UDF для обработки Паскаля корпуса:
CREATE FUNCTION [dbo].[pCase]
(
@strIn VARCHAR(255)
)
RETURNS VARCHAR(255)
AS
BEGIN
IF @strIn IS NULL
RETURN NULL
DECLARE
@strOut VARCHAR(255),
@i INT,
@Up BIT,
@c VARCHAR(2)
SELECT
@strOut = '',
@i = 0,
@Up = 1
WHILE @i <= DATALENGTH(@strIn)
BEGIN
SET @c = SUBSTRING(@strIn,@i,1)
IF @c IN (' ','-','''')
BEGIN
SET @strOut = @strOut + @c
SET @Up = 1
END
ELSE
BEGIN
IF @up = 1
SET @c = UPPER(@c)
ELSE
SET @c = LOWER(@c)
SET @strOut = @strOut + @c
SET @Up = 0
END
SET @i = @i + 1
END
RETURN @strOut
END
И затем использовать функцию следующим образом:
SELECT DBO.PCASE([FIELD])
Благодаря Jonny да вы правы, проблема это значение действительно имеют место в нем так что второй слова первый символ должен быть капитализированы, а также. как, например, Джонни Белл. – LondonUK
Я отредактировал свой ответ, чтобы отразить ваши потребности. Надеюсь, что это сработает. –
спасибо человеку, да он действительно работает – LondonUK