SQL after in语句中的大小写

SQL after in语句中的大小写,sql,sql-server,case,Sql,Sql Server,Case,我有下面的SQL语句 ( Select top 1 R.[Date] from dbo.[RTable] R where R.x IN (SELECT Number FROM dbo.xTable) --(CASE when R.[date]> GETDATE() then 'y' --else --'n' end) )as FieldName, 如何应用该案例?我之所以评论它,是因为它在运行时失败,是否有帮助?不清楚您想做什么,但看起

我有下面的SQL语句

(
    Select top 1 R.[Date] from dbo.[RTable] R where R.x
    IN (SELECT Number FROM dbo.xTable) 
    --(CASE when R.[date]> GETDATE() then 'y'
    --else
    --'n' end) 
    )as FieldName,

如何应用该案例?我之所以评论它,是因为它在运行时失败,是否有帮助?

不清楚您想做什么,但看起来您应该将其作为选择列表的一部分:

SELECT TOP 1 R.[Date], 
    CASE when R.[date]> current_timestamp then 'y' else 'n' end as FieldName 
FROM dbo.[RTable] R 
WHERE R.x  IN (SELECT Number FROM dbo.xTable) 

我用这个来解决这个问题

(Select top 1(CASE when R.[date]>= GETDATE() then 'y' when R.[Date] is null then 'n' else 'n' end) 
from dbo.[table] R  where R.x=a.y) as field,

错误消息是什么?您希望值
y
n
做什么?不清楚。另外,
TOP 1
没有
ORDER BY
几乎总是表示等待发生的错误。
WHEN THEN ELSE
是多余的。如果
为true,或者
为false,则始终会生成相同的值,因此不必费心测试
,只需使用
否则的值即可。