我想在表中添加一列,其中包含两列中的一列的值,具体取决于哪一行包含该值。
例如,
SELECT
concat("Selecting Col1 or 2", cast("Col1" OR "Col2" as string)) AS relevantinfo,
FROM table
我不太了解SQL,我知道这个查询不起作用。这甚至可以吗?
Col1 Col2
1
4
3
4
5
最终结果
Col1 Col2 relevantinfo
1 1
4 4
3 3
4 4
5 5
答案 0 :(得分:1)
您可以使用COALESCE
函数,该函数将返回列表中的第一个非空值。
SELECT col1, col2, COALESCE(col1, col2) AS col3
FROM t1;
答案 1 :(得分:0)
我不会改变表结构来添加可以通过简单查询检索的冗余信息。
我宁愿在IFNULL/ISNULL(ColumnName, 'Value to use if the col is null')
使用这种查询:
--This will work only if there can't be a value in both column at the same time
--Mysql
SELECT CONCAT(IFNULL(Col1,''),IFNULL(Col2,'')) as relevantinfo FROM Table
--Sql Server
SELECT CONCAT(ISNULL(Col1,''),ISNULL(Col2,'')) as relevantinfo FROM Table