#sql #tsql
#sql #tsql
Вопрос:
У меня проблема с предложением where. Я хочу "is null"
, чтобы и "<>"
функциональность столбца были объединены. Написал что-то вроде этого, но оно удаляет строки with t1.column1= test and is null
. Я хочу удалить только тест.
where (t1.column1 is null
or t2.column1 is null
or t2.column2 is null)
and t1.column1 <> 'test'
Заранее спасибо.
Ответ №1:
Вы могли бы попробовать:
WHERE ( t1.column1 != 'test'
AND (t2.column1 IS NULL OR t2.column2 IS NULL)
)
OR t1.column1 IS NULL
чтобы получить желаемые результаты.
Ответ №2:
Возможно, вам придется разбить каждое из них:
where (t1.column1 is null and t1.column1 <> 'test')
or (t2.column1 is null and t2.column1 <> 'test')
or (t2.column2 is null and t2.column2 <> 'test')
Или любые другие критерии, которые вам нужны для каждого условия…
Комментарии:
1. Вы это проверяли? Уверен, что оно всегда будет возвращать false .
2. Вы правы. Ого! У меня могут быть свои and и or в обратном порядке
Ответ №3:
Вы никогда не сможете выполнить это условие
, это всегда будет false
t1.column1 is null and t1.column1 <> 'test'
Если это <> ‘test’, то оно не равно null
Любое сравнение с null возвращает false
Все они вернут false
null = null
null <> null
‘value’ = null
‘value’ <> null
Даже (не (‘value’ = null)) вернет false
Итак, если t1.column1 = null, то у вас есть
true и false = false
Ответ №4:
Select t1.[Column1], t2.[Column2]
From MyTable t1
INNER JOIN MyTable t2
On t1.userid = t2.userid
where t1.[column1] is null Or t1.[column1] = ''
or t2.[column1] is null Or t2.[column1] = ''
or t2.[column2] is null Or t2.[column2] = ''
and t1.[column1] <> 'test'