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

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

21.08.2025, 12:44. Показов 1376. Ответов 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
912 / 286 / 57
Регистрация: 01.06.2023
Сообщений: 808
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
1192 / 761 / 128
Регистрация: 10.03.2012
Сообщений: 4,894
21.08.2025, 13:53
Можно попробовать
SQL
1
2
3
SELECT *
FROM #my_temp_table1
WHERE LTRIM(RTRIM(column1)) = '';
0
912 / 286 / 57
Регистрация: 01.06.2023
Сообщений: 808
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,338
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
5 / 5 / 0
Регистрация: 21.08.2025
Сообщений: 16
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
5 / 5 / 0
Регистрация: 21.08.2025
Сообщений: 16
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,027
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
1304 / 358 / 97
Регистрация: 14.10.2022
Сообщений: 1,087
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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru