FETCH NOT NULL ЗНАЧЕНИЯ ИЗ НЕСКОЛЬКИХ КОЛОНН - PullRequest
0 голосов
/ 04 октября 2019

Как получить столбцы, которые не равны NULL (не проверяя Nullability), из нескольких столбцов, которые есть в моей таблице SQL Server.

У меня есть таблица более 20 столбцов, и я хочу получить столбцыкоторые не являются нулевыми для каждой записи. Я попытался использовать not null в условии where, но это не сработает. Я также посетил здесь , но это тоже не работает.

Структура моей таблицы выглядит следующим образом:

Ожидаемый результат: все 1 для каждого идентификатора.

enter image description here

1 Ответ

0 голосов
/ 04 октября 2019

Ниже приведен запрос, который поможет вам найти все столбцы, отличные от NULL: -

DECLARE @sqlstr VARCHAR(MAX) 
SELECT    @sqlstr = COALESCE(@sqlstr + '+ ', '') + 'case ISNULL(COUNT(' + c.name + '), 0) WHEN 0 THEN '''' ELSE '',' + c.name + ''' END'
FROM    sys.all_columns c
INNER    JOIN
        sys.all_objects o
        ON c.object_id = o.object_id
WHERE    o.name='table_name'
set @sqlstr = '
declare @innerquery2 VARCHAR(MAX)
select @innerquery2 = ' + @sqlstr + ' from table_name
SET @innerquery2 =  case when charindex('','',@innerquery2,0) =1 then right(@innerquery2, len(@innerquery2)-1) else @innerquery2 end
set @innerquery2 = ''select '' + @innerquery2 + '' from table_name Where ID=1''
print @innerquery2
exec(@innerquery2)
'
exec(@sqlstr)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...