Я немного новичок в SQL, поэтому, пожалуйста, несите меня. Я пытаюсь написать какой-то запрос, который позволит мне пройти через всю таблицу и найти количество раз, когда в каждом столбце появляются нулевые значения. Это легко сделать трудный путь, введя следующее:Динамически подсчитывать нулевые значения в SQL Server
Select
SUM(CASE COL_1 WHEN IS NULL THEN 1 ELSE 0 END) AS COL_1_NULLS
,SUM(CASE COL_2 WHEN IS NULL THEN 1 ELSE 0 END) AS COL_2_NULLS
FROM TABLE1
Это легко, но это может стать трудным, если вы хотите сделать это для нескольких таблиц или если одна таблица имеет много столбцов.
Я ищу способ написать запрос, который передает в него имя таблицы, а затем проходит через каждый столбец в определенной таблице (возможно, потянув имя столбца по указанию через присоединение к представлению метаданных?) И затем суммирует количество нулей в столбце. Перед тем, как кто-либо прыгнет на нидерландский победитель, пожалуйста, имейте в виду, что эта основная идея может быть использована не только для поиска нулей. Любая помощь в этом вопросе приветствуется.
Для этого вам придется использовать динамический SQL. Это кажется довольно продвинутым для тех, кто описывает себя как «немного нового». –
Вы можете запросить таблицу sys.columns (https://www.google.com/?gws_rd=ssl#q=sql+server+loop+columns+in+a+table), но, честно говоря, если это не произойдет для многих таблиц было бы меньше усилий, чтобы просто скопировать имена столбцов. –
У меня нет ничейной вечеринки о том, что вы делаете, но вы упомянули цикл несколько раз. Оператор select не перебирает все строки. Он находит строки, соответствующие критериям. Этот тип вещей должен был бы быть выполнен с использованием динамического sql, как уже предлагал Гордон. –