是否可以在内联语句中检查列是否存在? 请注意,这与常见问题“如何检查列是否存在”不重复。这与可能的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]
或像这样的子查询方式......
SELECT
[col1],
[col2],
SELECT(if exists (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'Table' AND COLUMN_NAME = 'col3') BEGIN SELECT [col3]...