SQL для поиска имен всех столбцов в таблице, где сумма столбцов больше нуля - PullRequest
1 голос
/ 01 ноября 2010

У меня есть таблица в SQL Sever 2005, где многие столбцы содержат только NULL или 0 или 0.0. Я хочу, чтобы запрос нашел имена всех столбцов в этой таблице, которые имеют SUM больше 0, т.е. таблица содержит хотя бы одну строку, где ее значение не равно нулю и больше нуля.

Спасибо.

1 Ответ

1 голос
/ 01 ноября 2010

Я полагаю, что проще всего было бы взять вывод следующего оператора и запустить его как скрипт.

SELECT  SELECT COUNT(*), ''' + name + ''' FROM dbo.ATable WHERE ' + name + '> 0'
FROM    sys.columns sc
WHERE   OBJECT_NAME(OBJECT_ID) = 'ATable'

Я не знаю системных таблиц, но вы можете исключить все, что не является числом, посмотрев на типы отдельных столбцов. Если я не ошибаюсь, вы можете присоединиться с sys.types

Если вам нужно общее решение, можно было бы создать динамический оператор, переданный execsql, но это было бы излишним за одно исправление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...