Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
2 / 2 / 1
Регистрация: 16.04.2022
Сообщений: 1,002

Значения только из пробелов

21.08.2025, 12:44. Показов 1274. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!

Есть таблица
SQL
1
2
3
CREATE TABLE #my_temp_table1 ([column1] VARCHAR(100));
INSERT INTO #my_temp_table1 VALUES
(' ') --Есть пробел
Нужно найти значение, в которых содержаться только пробелы

SQL
1
2
3
4
5
SELECT
    CASE WHEN REPLACE([column1], ' ', '') = '' AND [column1] != '' THEN 1 ELSE 0 END AS [Вариант 1]
    ,CASE WHEN TRIM([column1]) = '' AND [column1] != '' THEN 1 ELSE 0 END AS [Вариант 2]
FROM
    #my_temp_table1
Возвращает такой результат
Вариант 1Вариант 2
00

Ни один из вараинтов не улавливает. Почему? И как правильно написать?

Добавлено через 19 минут
Получается так
SQL
1
2
3
4
SELECT
    CASE WHEN REPLACE([column1], ' ', '') = '' AND datalength([column1]) > 0 THEN 1 ELSE 0 END AS [Вариант 3]
FROM
    #my_temp_table1
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.08.2025, 12:44
Ответы с готовыми решениями:

Выбор значения у которого только один наследник ( ТОЛЬКО уникальное значение)
Добрый день. Прошу прощения за глупый вопрос, но я новичок и столкнулся с такой проблемой: Есть...

Предикат LIKE: найти строки, значения которых состоят только из цифр или только из латинских букв
Как найти строки, значения которых состоят только из цифр или только из латинских букв (A-Z, без...

Пользователь может ввести только два слова, разделенных пробелом
Доброе время суток, Меня интересует вот такой вопрос, есть ли возможность указать такой фильтр что...

9
767 / 284 / 57
Регистрация: 01.06.2023
Сообщений: 801
21.08.2025, 13:10
SQL
1
2
3
4
SELECT
    CASE [column1] ~ '^\s+$' THEN 1 ELSE 0 END AS [Вариант 4]
FROM
    #my_temp_table1
0
1184 / 754 / 127
Регистрация: 10.03.2012
Сообщений: 4,829
21.08.2025, 13:53
Можно попробовать
SQL
1
2
3
SELECT *
FROM #my_temp_table1
WHERE LTRIM(RTRIM(column1)) = '';
0
767 / 284 / 57
Регистрация: 01.06.2023
Сообщений: 801
21.08.2025, 13:54
Цитата Сообщение от Whitecolor Посмотреть сообщение
Можно попробовать
Пустые строки '' так же попадут под это условие

Достаточно убрать пробелы с одной стороны

SQL
1
2
3
SELECT *
FROM #my_temp_table1
WHERE RTRIM(column1) = '';
0
 Аватар для iLinks
799 / 457 / 237
Регистрация: 03.01.2017
Сообщений: 1,337
21.08.2025, 15:31
SQL
1
2
3
4
SELECT t.column1,
       t.column1 ~ '^\s+$' AS only_spaces1, --если пустая строка '' тоже попадает под условие, тогда такая регулярка '^\s*$'
       t.column1 <> '' AND TRIM(t.column1) = '' AS only_spaces2 --тут так же, если пустая строка попадает под условие, то надо убрать t.column1 <> ''
  FROM #my_temp_table1 t;
0
2 / 2 / 0
Регистрация: 21.08.2025
Сообщений: 9
21.08.2025, 21:44
Символ замены можно взять любой, взял ~
Код MSSQL, для PostgreSQL идея тоже будет работать.
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
drop table if exists #my_temp_table1;
CREATE TABLE #my_temp_table1 ([column1] VARCHAR(100));
INSERT INTO #my_temp_table1 VALUES
(''),(' '),('  '),('   '),('    '),('     '),('1 '),(' 2'),('1 2'),(' 3 '),(' 1 3 2 '),(' 1 ~ 2 '),('  ~  ');
 
select '|'+column1+'|' column1 --Для удобства просмотра пробелов в поле.
      ,case when charindex('~',column1)                   <> 0 then 0
            when replace(column1,' ','~')                 = '' then 0
            when replace(replace(column1,' ','~'),'~','') = '' then 1
            else                                                    0
       end Spaces
from #my_temp_table1;
0
2 / 2 / 0
Регистрация: 21.08.2025
Сообщений: 9
22.08.2025, 12:46
Добрый день.
Можно немного проще:
T-SQL
1
2
3
4
5
6
7
8
9
10
select '|'+column1+'|' as column1
      ,case when charindex('~',column1)                   <> 0 then 0
            when replace(column1,' ','~')                 = '' then 0
            when replace(column1,' ','')                  = '' then 1
 
            --Можно и так, если никакие настройки не повлияют на логику: строка с пробелами = пустой строке
            --when column1                                  = '' then 1
            else                                                    0
       end as Spaces
from #my_temp_table1;
0
2 / 2 / 1
Регистрация: 16.04.2022
Сообщений: 1,002
22.08.2025, 18:11  [ТС]
Спасибо!

Только я ошибся разделом. Возможно перенести в раздел MS SQL?
0
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
30.08.2025, 14:23
Замените тип varchar на char. Varchar обычно теряет хвостовые пробелы.
0
1302 / 356 / 97
Регистрация: 14.10.2022
Сообщений: 1,084
30.08.2025, 16:47
Эээ...

T-SQL
1
2
Select * from tbl a
Where a.fld like ' %' and a.fld not like '%[^ ]%'
Как всегда успел к шапочному разбору...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.08.2025, 16:47
Помогаю со студенческими работами здесь

Селект для выбора значений, разделеннных пробелом, из строки
Помогите, пожалуйста, с запросом к БД Nagios Есть вот такие данные host_id ...

Как найти значение с пробелами посередине в jsonb
Всем привет, может кто знает как в postgresql в jsonb найти значение с пробелами посередине. К...

Count по условию: нужно число только записей с определенным значением
Всем привет! Вопрос к знатокам, как сделать так, чтобы в конструкторе отчетов посчитать число...

Посчитать только типы значений в записях
Есть таблица Сок Яблочный 0.5л Сок Яблочный 1л Сок Апельсиновый 1л Вода Архыз 1.2 Вода...

Вставить в Editbox значение, если есть только ключ
Выбираем в Выпадающем списке значение, нужно подставить значения в едитбоксы , если из списка...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru