Как написать sql запрос, выводящий букву, находящуюся в середине строки

Необходимо написать запрос, который выводит букву, находящуюся в середине заданной строки (например, сон - вывести букву "о"); если количество слов в строке четное, то необходимо вывести левую букву из середины (например, супы - вывести букву "у").


Ответы (2 шт):

Автор решения: MaxDown

Примера созданной таблицы нет, поэтому вот так:

CREATE TABLE [dbo].[Nomenclature](
    [Name] [nvarchar](max) NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY];

INSERT INTO [dbo].[Nomenclature]
           ([Name])
     VALUES
           (N'Сон'),
           (N'Супы'),
           (N'Корона'),
           (N'Сервера');

Запрос:

SELECT
   Name,
   CASE LEN(Name)%2
      WHEN 1 THEN SUBSTRING(Name, LEN(Name)/2+1, 1)
      WHEN 0 THEN SUBSTRING(Name, LEN(Name)/2, 1)
   END Rezult
FROM Nomenclature;

Результат:

Name Rezult
Сон о
Супы у
Корона р
Сервера в

В следующий раз указывайте версию сервера, для точностей.

→ Ссылка
Автор решения: Vitaliy Zlobin
SUBSTRING(YouColumn, CEILING(LEN(YouColumn) / 2.0), 1)
→ Ссылка