我写了以下脚本:
IF OBJECT_ID('tempdb..#Temp') IS NOT NULL
DROP TABLE #Temp
create table #Temp
(
[KeyName] [nvarchar](max),
[CertName] [nvarchar](max),
)
Go
INSERT INTO #Temp
EXEC fetch_data
GO
IF(Select #Temp.KeyName From #Temp) = 'SSN_Key_01' AND (Select CertName From
#Temp) = 'PasswordManager001'
EXEC decrypt_1
Else
IF(Select KeyName From #Temp) = 'SSN_Key_02' AND (Select CertName From #Temp)
= 'PasswordManager002'
EXEC decrypt_2
Else
IF(Select KeyName From #Temp) = 'SSN_Key_03' AND (Select CertName From #Temp)
= 'PasswordManager003'
EXEC decrypt_3
GO
并继续收到错误:子查询返回的值超过1。当子查询遵循=,!=,<,< =,>,> =或子查询用作表达式时,不允许这样做。
我只是尝试对我返回的值进行一些比较,并根据脚本上可见的三个条件执行它们。
为什么我一直收到报告?
答案 0 :(得分:0)
好像CertName
表中有多个#Temp
和/或多个KeyName
。
如果有一个值重复多次,您可以使用distinct
IF(Select distinct KeyName From #Temp) ...
如果您有多个不同的值,可以使用
解决它IF (Select count(*) From #Temp where KeyName = 'SSN_Key_01') > 0 ...
答案 1 :(得分:0)
试试这个:
{{1}}