Принятие Вас имеет правильные полномочия:
SELECT *
FROM yourdatabasename.sys.all_objects
WHERE upper(name) like upper('my prefix%') --use UPPER for case-INsensitivity
Если вы готовы принять арифметику с дополнением до 2:
x & -x
Если вы много занимаетесь подобными вещами (или даже если вам это просто интересно) , найдите себе копию книги "Hacker's Delight".
edit: avakar правильно отмечает, что это не зависит от дополнения до 2, если тип беззнаковый. Соответствующий раздел стандарта - это §6.2.5, параграф 9:
Вычисление с использованием беззнакового операнды никогда не могут переполниться, потому что результат, который не может быть представлен результирующий беззнаковый целочисленный тип уменьшено по модулю числа, которое равно единице больше, чем наибольшее значение, которое можно представить в виде полученного type.
«на единицу больше наибольшего значения» оставляет некоторое пространство для маневра для особенно извращенной реализации (в частности, реализации, которая, например, не использует двоичный код), но вы вряд ли столкнетесь с этим.
Без использования арифметики с плавающей запятой:
((x ^ (x - 1)) >> 1) + 1
Упрощение и крайние случаи оставлены как упражнения для читатель.
Мы можем заменить (- x)
на (~ x + 1)
:
x & (~x+1)
Низкоуровневые битовые хаки, которые вы обязательно должны знать дает подробное объяснение.