2015-05-13 3 views
0

Я пишу отчет, используя построитель отчетов, и одно из поданного значения набора данных находится в верхнем регистре. Я хочу загладить первую букву этого значения поля данных в текстовом поле. Пожалуйста, дайте мне знать, если вы можете помочь.загладить первую букву в построителе отчетов, зарегистрированной

Благодаря Yogi

ответ

1

Я предполагаю, что вы используете запрос из базы данных для извлечения данных с помощью объекта соединения. Исходя из того, что вы сказали здесь, разумный подход был бы:

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]) 
+0

Благодаря Jonny да вы правы, проблема это значение действительно имеют место в нем так что второй слова первый символ должен быть капитализированы, а также. как, например, Джонни Белл. – LondonUK

+0

Я отредактировал свой ответ, чтобы отразить ваши потребности. Надеюсь, что это сработает. –

+0

спасибо человеку, да он действительно работает – LondonUK

Смежные вопросы