Да, вы можете.
import pygame
pygame.init()
while 1:
print pygame.time.get_ticks()
pygame.time.wait(10)
Это даст вам время в миллисекундах, так как pygame начался без появления графического пользовательского интерфейса.
Возможно, это сработает, но я никогда не пробовал этого:
SELECT *
FROM T1 JOIN T2
ON T1.SOMECOL = T2.SOMECOL OR (T1.SOMECOL IS NULL AND T2.SOMECOL IS NULL)
@Sarath Avanavu
Этот не лучший подход. Если TA.COL1 сохранит значение 0, и ТБ COL2 является ПУСТЫМ, то это присоединится к тем записям, который не корректен.
SELECT *
FROM TABLEA TA
JOIN TABLEB TB ON NVL(TA.COL1,0)=NVL(TB.COL2,0);
В SQL Server я использовал:
WHERE (a.col = b.col OR COALESCE(a.col, b.col) IS NULL)
Очевидно неэффективно , из-за ИЛИ, но если нет зарезервированного значения, вы можете сопоставить NULL с обеих сторон без двусмысленности или сворачивания, это лучшее, что вы можете сделать (и если да, то почему NULL даже разрешен в вашем дизайне ...)
Вы ничего не можете сделать лучше, но JOIN, который у вас есть, никоим образом не будет выполнять фактическое "JOIN" (не будет никакой корреляции между T1.SOMECOL и T2.SOMECOL кроме того, что оба они имеют значение NULL для этого столбца). В основном это означает, что вы не сможете использовать JOIN для NULL, чтобы увидеть, совпадают ли строки.
NULL никогда не равен другому NULL. Как может что-то неизвестное значение быть равным чему-то еще неизвестному?
Для такого рода задач Oracle внутренне использует недокументированную функцию sys_op_map_nonnull (), где ваш запрос станет:
SELECT *
FROM T1 JOIN T2 ON sys_op_map_nonnull(T1.SOMECOL) = sys_op_map_nonnull(T2.SOMECOL)
Недокументированным, поэтому будьте осторожны, если вы пойдете по этому маршруту.
Вы действительно хотите иметь возможность присоединяться к таблицам, если значение равно нулю? Разве вы не можете просто исключить возможные нулевые значения в предикате соединения? Мне трудно понять, что строки в двух таблицах могут быть связаны нулевым значением. Если у вас есть 100 значений NULL в table1.col_a и 100 NULL в table2.col_b, вы получите 10000 строк, возвращенных только для строк с NULL. Звучит неправильно.
Однако вы сказали, что вам это нужно. Могу ли я предложить объединить нулевой столбец в меньшую строку, поскольку сравнение символов относительно дорого. Еще лучше объединить нули в целое число, если данные в столбцах будут текстовыми.
Просто бросим это туда - есть ли способ объединить эти нули в известное значение, например, пустой строка? Незнание того, как устроена ваша таблица, означает, что я не могу быть уверен, потеряете ли вы таким образом смысл - т.е. пустая строка представляет «пользователь отказался ввести номер телефона», а NULL означает «мы забыли спросить об этом »или что-то в этом роде?
Скорее всего, это невозможно, я уверен, но если это так, у вас будут известные значения для сравнения, и вы сможете таким образом получить законное соединение.
Разве это не то же самое, что проверка наличия нулей в обоих столбцах?
SELECT * FROM T1, T2 WHERE T1.SOMECOL IS NULL and T2.SOMECOL IS NULL
или
SELECT * FROM T1 CROSS JOIN T2 WHERE T1.SOMECOL IS NULL and T2.SOMECOL IS NULL