Как написать 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 |
|---|---|
| Сон | о |
| Супы | у |
| Корона | р |
| Сервера | в |
В следующий раз указывайте версию сервера, для точностей.