内联SELECT语句中的Chek IF列EXISTS

Mil*_*lan 7 sql t-sql sql-server sql-server-2000

是否可以在内联语句中检查列是否存在?请注意,这与常见问题"如何检查列是否存在"不重复.这涉及可能的INLINE解决方案.

有可能这样做但是因为这需要为BCP [out]命令编写,所以我不能使用SP,并且兼容性必须与MSSQL 2000相匹配.

以下类似的东西有机会工作吗?

SELECT
[col1],
[col2],
CASE
   WHEN (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'Table'  AND COLUMN_NAME = 'col3') = 1
   THEN [col3]
   ELSE null
END
FROM [MyDb].[dbo].[Table]
Run Code Online (Sandbox Code Playgroud)

或像这样的子查询方式....

    SELECT
    [col1],
    [col2],
SELECT(if exists (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'Table' AND COLUMN_NAME = 'col3') BEGIN SELECT [col3]...
Run Code Online (Sandbox Code Playgroud)