Как проверить, является ли текстовый столбец SQL Server пустым? - PullRequest
167 голосов
/ 29 августа 2008

Я использую SQL Server 2005. У меня есть таблица с текстовым столбцом, и у меня есть много строк в таблице, где значение этого столбца не нулевое, но оно пустое. Попытка сравнить с '' дает следующий ответ:

Типы данных text и varchar несовместимы в операторе не равно.

Существует ли специальная функция для определения, является ли значение текстового столбца не нулевым, а пустым?

Ответы [ 14 ]

0 голосов
/ 08 сентября 2012

Вы должны сделать оба:

SELECT * FROM Table WHERE Text IS NULL or Text LIKE ''

0 голосов
/ 07 марта 2012

Я хотел, чтобы предопределенный текст («Нет доступных лабораторий») отображался, если значение было нулевым или пустым, и мой друг помог мне с этим:

StrengthInfo = CASE WHEN ((SELECT COUNT(UnitsOrdered) FROM [Data_Sub_orders].[dbo].[Snappy_Orders_Sub] WHERE IdPatient = @PatientId and IdDrugService = 226)> 0)
                            THEN cast((S.UnitsOrdered) as varchar(50))
                    ELSE 'No Labs Available'
                    END
0 голосов
/ 30 августа 2008

эквивалентны ли null и пустая строка? Если это так, я бы включил логику в свое приложение (или, может быть, триггер, если приложение «из коробки»?), Чтобы заставить поле быть либо нулевым, либо '', но не другим. Если вы выбрали '', то вы также можете установить для столбца значение NOT NULL. Просто вещь для очистки данных.

0 голосов
/ 29 августа 2008

Я бы протестировал против SUBSTRING (textColumn, 0, 1)

...