0

だから私は次のものを持っています:

SELECT 
    data, 
    encrypteddata,
    CONVERT(varchar, DecryptByKey(encrypteddata)) AS 'decrypteddata'
FROM table

キーを指定すると、元のデータ列、暗号化されたデータ列、および復号化されたデータ列が一時列として出力されます。すべて良い。

私がやろうとしてきたことは、その結果を得ることであり、別の AS 列を作成しMatch、それが一致するかどうかを true または false で言います。

私はもう試した

SELECT 
    data, 
    encrypteddata,
    CONVERT(varchar, DecryptByKey(encrypteddata)) AS 'decrypteddata'
    COUNT(distinct(decrypteddata))
FROM table
WHERE COUNT (distinct(decrypteddata)) > 1 
GROUP BY data

COUNTこれにより、構文に関する 最初のエラーが発生します。

どうすればこれを行うことができるか、誰にも提案がありますか?

4

2 に答える 2

0

これを試して

SELECT 
data, 
encrypteddata,
CONVERT(varchar, DecryptByKey(encrypteddata)) AS 'decrypteddata',
COUNT(distinct(decrypteddata))
FROM table
WHERE COUNT (distinct(decrypteddata)) >1 group by data

-- ここでは、convert 関数を使用しています。これでは、長さパラメーターを指定せずに varchar のみを使用しています。したがって、実際のデータが 30 文字を超える場合は、30 文字しか使用せず、残りは切り捨てられます。実際のデータの長さ。

于 2012-07-28T05:46:09.253 に答える
0

この行の最後にコロンがありません

CONVERT(varchar, DecryptByKey(encrypteddata)) AS 'decrypteddata'

また、何を一致させようとしているのかよくわかりませんが、そのために IF を使用することを検討してください

SELECT
IF(CONVERT(varchar, DecryptByKey(encrypteddata))=other_data_field, 'true','false') as Match
....
于 2012-07-28T02:05:05.837 に答える