Как посмотреть, находится ли вложенное значение в маскированном значении

Просто используйте два пакета параметров:

template<typename Bar, typename... Bars, typename Input, typename... Inputs>
std::string foo(const Input &input, const Inputs &... inputs)
{
    std::string result(Bar::get_name());
    result.append(input);

    if constexpr (sizeof...(inputs) > 0)
        result.append(foo<Bars...>(inputs...));

    return result;
}
1
задан Lukasz Szozda 18 January 2019 в 21:30
поделиться

2 ответа

вы можете использовать побитовую операцию, которая &

, например, 12. Побитовый эквивалент 12 равен 1100. если вы хотите узнать, установлен ли флажок 3, необходимо сравнить его с 8 (эквивалент 1000)

1100
1000
-----
1000 => 8

. Таким образом, ваш окончательный запрос будет

SELECT * from Table1 WHERE answer & 8 = 8
0
ответ дан Derviş Kayımbaşıoğlu 18 January 2019 в 21:30
поделиться

Вы можете использовать побитовое значение AND :

SELECT *
FROM tab
WHERE answer & 10 = 10

Аналогичный подход, используемый в @@ OPTIONS :

[ 118] Функция @@ OPTIONS возвращает битовый массив опций, преобразованный в целое число 10 (десятичное).

Чтобы декодировать значение @@ OPTIONS , преобразуйте целое число, возвращаемое @@ OPTIONS , в двоичный файл, а затем найдите значения в таблице в разделе Настройка параметров пользователя Настройка сервера Вариант. Например, если SELECT @@ OPTIONS; возвращает значение 5496, используйте калькулятор программиста Windows (calc.exe) для преобразования десятичного числа 5496 в двоичное. Результат - 1010101111000. Самые правые символы (двоичные 1, 2 и 4) равны 0, что указывает на то, что первые три элемента в таблице выключены.

Проверка ANSI_NULLS

Чтобы просмотреть текущие настройки для этого параметра, выполните следующий запрос:

[111 ]
0
ответ дан Lukasz Szozda 18 January 2019 в 21:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: