У меня есть FIREBIRD таблицы базы данных со столбцом типа VARCHAR, состоящим из шестнадцатеричного числа:Преобразование шестнадцатеричных VARCHAR в двоичный VARCHAR
MyColumn
2020FF
731DD1
...
Я хочу выбрать все строки таблицы, где столбец, преобразованный из шестнадцатеричного в двоичный, содержит значение 1 в 7-м бите (или 8-м или 9-м или любом другом) с одним единственным оператором SQL.
Пример:
2020ff -> 001000000010000011111111 -> ЛОЖЬ
731DD1 -> 011100110001110111010001 -> ИСТИНА
Псевдокод:
SELECT MyColumn FROM MyTable WHERE SUBSTRING(hexToBinary(MyColumn),7,7)=1
В Firebird нет стандартной функциональности, которая позволила бы вам это сделать, вам нужно будет написать свой собственный UDF; или найти существующий UDF, который делает это. –