嗨,我的手术有问题
Stored-Procedure:
SELECT dbo.Table1.*,
CAST (CASE WHEN Table1.Id IS IN ( SELECT Id
FROM dbo.Table2
WHERE RefRolleId =@Id)
THEN 0 ELSE 1 END AS bit) AS selected
FROM dbo.Table1错误:接近IN-关键字错误语法的错误语法
我搜索了一下,但找不到一个有IN接线员的例子,有人能帮我点一下吗?
如有任何建议,我们深表感谢。
发布于 2013-01-22 14:15:31
只需删除IS,它就会工作(这只是直接回答您的问题,没有其他问题(如性能改进))。
SELECT dbo.Table1.*,
CAST (CASE WHEN Table1.Id IN ( SELECT Id
FROM dbo.Table2
WHERE RefRolleId =@Id)
THEN 0 ELSE 1 END AS bit) AS selected
FROM dbo.Table1发布于 2013-01-22 14:19:25
@JW是正确的,但我建议更改您的查询,类似于:
SELECT DISTINCT T.*,
CAST (CASE
WHEN T2.Id IS NOT NULL
THEN 0
ELSE 1
END AS bit) AS selected
FROM dbo.Table1 T
LEFT JOIN dbo.Table2 T2 ON T.Id = T2.Id AND T2.RefRolleId =@Id我认为这可能会带来更好的表现。
祝好运。
https://stackoverflow.com/questions/14460599
复制相似问题