2015-12-03 5 views
1

Если у меня есть следующая примерная таблица, есть ли способ сохранить строки, где столбец «Закрытая дата» пуст? В этом примере только вторая строка имеет пустой столбец «Закрытая дата», третий и четвертый - нет. enter image description hereВЫБРАТЬ только целую строку, где столбец пуст в SQL

Unique Key,Created Date,Month,Closed Date,Latitude,Longitude 
32098276,12/1/2015 0:35,12,,40.78529363,-73.96933478,"(40.78529363449518, -73.96933477605721)" 
32096105,11/30/2015 20:09,11,11/30/2015 20:09,40.62615508,-73.9606431,"(40.626155084398036, -73.96064310416676)" 
32098405,11/30/2015 20:08,11,11/30/2015 20:08,40.6236074,-73.95914964,"(40.62360739765128, -73.95914964173129)" 

Я нахожу это, но это не совсем я ищу. Может ли просветитель гуру? Благодаря!

return empty row based on condition in sql server

  • К сожалению забыл упомянуть я использую SQL Server 2014.
+2

что ваши DBMS? – Japongskie

+0

Ваше пустое значение означает 'NULL' или пустую строку' '' '? Каков тип столбца «Закрытая дата» – lad2025

ответ

2
SELECT * 
FROM your_table 
WHERE [Closed Date] IS NULL OR LTRIM(RTRIM([Closed Date])) = '' 
+0

Это специфический SQL-сервер :) – lad2025

+0

@ lad2025, когда я узнаю dbms, могу обновить синтаксис :-) –

+0

Я использую SQL Server 2014. Если я использую только «SELECT * FROM TABLE WHERE Closed_Date IS NULL», это будет возвращать заголовок без какой-либо роли. В чем разница между вашей магией и регулярным IS NULL? – Chubaka

1

Вы можете использовать IS NULL, чтобы отфильтровать записи, которые содержат NULL значение:

SELECT * 
FROM your_table 
WHERE "Closed Date" IS NULL 

Имейте в виду, этот идентификатор столбца с пространством является плохой практикой. Вы должны использовать что-то вроде Closed_Date, чтобы избежать цитирования.

2

Вы можете использовать условие IS NULL в пункте WHERE:

SELECT * 
FROM your_table 
WHERE "Closed Date" IS NULL 
+0

Вы должны добавить, что обратная сторона имеет значение MySQL. – lad2025

+0

Он действительно должен указать свою СУБД. Но конструкция 'WHERE' должна работать в MySQL, Oracle и SQL Server. –

+0

вот почему я не дал ответа, я сначала спрашиваю dbms в OP :) – Japongskie

0

Другой подход для SQL Server, чтобы включить пустую строку ('')

-->> SQL Server 
SELECT * FROM your_table 
WHERE [Closed Date] IS NULL OR [Closed Date] = '' 

SELECT * 
FROM your_table 
WHERE ISNULL([Closed Date],'') = '' 
+0

Thi не является SARG-способным – lad2025

+0

@ lad2025 Что вы подразумеваете под SARG? – Japongskie

+0

Если есть индекс в закрытой дате, оптимизатор запросов пропустит его – lad2025