我只需要在表中存在列时选择一个列,否则可以设置为null.
下面的示例表,可以说marks
col不是必需的,因此需要检查它是否存在
表1:
name marks
joe 10
john 11
mary 13
Run Code Online (Sandbox Code Playgroud)
查询:
select
name,
marks if it exists else null as marks1 -- pseudo code
from
table1
Run Code Online (Sandbox Code Playgroud)
应该选择marks
什么?
SQL不允许这样做.您的结果集有两个选项:
*
和tbl.*
也许这将满足您的需求SELECT * FROM table1;
,如果存在,您将始终获得该列.
尝试这个:
IF EXISTS( SELECT 1
FROM information_schema.columns
WHERE table_name='your_table' and column_name='your_column') THEN
SELECT your_column as 'some_column'
ELSE
SELECT NULL as 'some_column'
END IF
Run Code Online (Sandbox Code Playgroud)