所以我有以下内容:
SELECT
data,
encrypteddata,
CONVERT(varchar, DecryptByKey(encrypteddata)) AS 'decrypteddata'
FROM table
给定密钥,它将原始数据列,加密数据列和解密数据列作为临时列输出。一切都好。
我一直试图做的就是得到那个结果,然后再制作另一个AS列,如果是匹配则用Match
表示真或假。
我试过
SELECT
data,
encrypteddata,
CONVERT(varchar, DecryptByKey(encrypteddata)) AS 'decrypteddata'
COUNT(distinct(decrypteddata))
FROM table
WHERE COUNT (distinct(decrypteddata)) > 1
GROUP BY data
这只是在第一个COUNT
语法时给出了一个错误。
有没有人建议我怎么做?
答案 0 :(得分:0)
我发现你在这一行的末尾错过了一个冒号
CONVERT(varchar, DecryptByKey(encrypteddata)) AS 'decrypteddata'
另外,我不太明白你想要匹配什么,但考虑使用IF
SELECT
IF(CONVERT(varchar, DecryptByKey(encrypteddata))=other_data_field, 'true','false') as Match
....
答案 1 :(得分:0)
试试这个
SELECT
data,
encrypteddata,
CONVERT(varchar, DecryptByKey(encrypteddata)) AS 'decrypteddata',
COUNT(distinct(decrypteddata))
FROM table
WHERE COUNT (distinct(decrypteddata)) >1 group by data
- 这里你使用了转换功能 - 在这里你只使用了没有长度参数的varchar。所以如果你的实际数据超过30个字符,它将只需要30个字符,其余的将被截断。所以只是确保什么是实际数据的长度。