3
SELECT LOWER(pla_lan_code) as locale,
    pla_auto_translate_opt_out_flag^1 as autoTranslationEnabled,
    pte_manual_edit_flag^1 as autoTranslated,
    ftr_created_date as queuedDate,
    ftr_translation_date as translationDate,
    ftr_engine as translationEngine,
    ftr_id as translationId,
    pla_auto_translate_opt_out_flag as translationOptOut

SELECT * FROM property_languages (nolock)
    LEFT OUTER JOIN properties_text_live (nolock)

此查询嵌入在 Java 代码中。我正在尝试将其转换为存储过程。我想知道 ^1 在 SQL 中的含义。

4

1 回答 1

5

这不是标准 SQL。在 Transact-SQL(用于 MS SQL Server 和 Sybase)^中是按位异或运算符

1 ^ 1 为 0,0 ^ 1 为 1。

如果原始 int 存储 0 表示假,1 表示真,则异或 1 将反转原始标志的含义。

猜测 pla_auto_translate_opt_out_flag 是一个 int,其中 1 表示选择退出,0 表示启用自动翻译,使用运算符返回 1 表示启用,0 表示选择退出。

于 2013-10-21T15:51:39.210 回答