Выберите первый элемент списка, разделенного запятыми

У меня есть столбец поля, который содержит такие значения, как

4  
12,3  
8,5,6,7  

Я собираюсь написать оператор SELECT, результатом которого будет:

4  
12  
8  

Как я могу это сделать?

Вы хотели первое значение для каждой строки?

jishan siddique 23.11.2022 07:20

да, я хочу первое значение для каждой строки

Maida Munir 23.11.2022 07:21
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
2
69
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Попробуй это

Для SQL-сервера:

select if (charindex(',', numbers) = 0, numbers, LEFT(numbers, charindex(',', numbers) - 1))
from table;

Для MySQL:

select if (instr(numbers, ',') = 0, numbers, LEFT(numbers, instr(numbers, ',') - 1))
from table;
Ответ принят как подходящий

Попробуй это

Я надеюсь, что вы ищете такое решение.

DECLARE @table TABLE
(
    ID INT IDENTITY(1,1),
    Value NVARCHAR(MAX)
)

INSERT INTO @table VALUES('4'),('12,3'),('8,5,6,7')

select *,
IIF(CHARINDEX(',', [Value]) = 0, [Value],SUBSTRING([Value],1,(CHARINDEX(',',[Value])-1))) AS [OutPut]
from @table

Вывод

Попробуйте это для SQL-сервера

DECLARE @CSV_Split TABLE
(
    Id INT IDENTITY(1,1),
    CSVData NVARCHAR(MAX)
)

INSERT INTO @CSV_Split VALUES('4'),('12,3'),('8,5,6,7')

select *,LEFT(CSVData, CHARINDEX(',', CSVData + ',') - 1)
from @CSV_Split

Вывод примерно такой:

Другие вопросы по теме