将T-SQL查询带入另一个查询并查找匹配项

时间:2012-07-28 01:57:11

标签: sql-server

所以我有以下内容:

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语法时给出了一个错误。

有没有人建议我怎么做?

2 个答案:

答案 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个字符,其余的将被截断。所以只是确保什么是实际数据的长度。