无法在“select”中选择“where(select ...”)

时间:2015-04-24 19:22:21

标签: sql sql-server

我正在尝试根据返回另一个字符串值的子查询选择一个字符串值。

虽然案例如

typename

工作,像这样返回0行:

select * from ForgeRock where (SELECT count(*) from...) = 1;
select * from ForgeRock where (SELECT num1 from...) = num2;

请注意:我说的是

的情况
select * from ForgeRock where (SELECT name from...) = 'OpenDJ';

正好返回1行。以下内容也无济于事:

SELECT name from...
SELECT num1 from...

这是一个演示字符串问题的小提琴链接: http://sqlfiddle.com/#!6/a7540/1711

这是另一个小提琴链接,证明数字没有问题: http://sqlfiddle.com/#!6/a7540/1715

那么......我怎样才能设法获取这些子查询字符串?

1 个答案:

答案 0 :(得分:0)

看看这个:

(SELECT 'productName') = 'OpenDJ'

它与:

相同
'productName' = 'OpenDJ'

永远不会是真的。

这会给你一个结果:

select * from ForgeRock where productName = (select 'OpenDJ');