内联SELECT语句中的Chek IF列EXISTS

时间:2016-01-12 20:31:16

标签: sql sql-server tsql 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]

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

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

0 个答案:

没有答案