我想做的是这样的:
DECLARE @Test NVARCHAR(200)
SELECT et.ExampleField, (SELECT CASE (@Test = (SELECT 'Test')) WHEN @Test IS NOT NULL THEN @Test
ELSE
''
END) FROM ExampleTable et
出于可读性的目的,我对其进行了一些简化,但基本上该(SELECT 'Test')
位可以是任何 SQLSELECT
语句拉回一个值(或NULL
)供我测试。
这可以做到吗?我尝试这样做的原因是我希望通过消除对嵌套选择的需要来提高效率,在这个例子(SELECT 'Test')
中,不必多次运行,即这样的东西,它确实有效:
DECLARE @Test NVARCHAR(200)
SELECT et.ExampleField, (SELECT CASE WHEN (SELECT 'Test') IS NOT NULL THEN (SELECT 'Test')
ELSE
''
END) FROM ExampleTable et