如果我执行以下查询,那么我在这里获得的记录超过1000条
select
ID, name, 'Default value' as "Other"
from
emp_table
输出:
ID | Name | Other
---------------------------------
1 | H | Default value
2 | V | Default value
3 | D | Default value
但是我在虚拟列上添加了默认值Default Value
。默认值应仅反映第一行而不是所有行
预期产出:
ID | Name | Other
----------------------------------
1 | H | Default value
2 | V | null
3 | D | null
答案 0 :(得分:1)
如果您使用的是SQL Server,可以使用ROW_NUMBER()向查询添加行号,然后使用CASE
语句写入默认值或null:
select
ID,
NAME,
CASE ROW_NUMBER() OVER(ORDER by NAME)
WHEN 1 THEN 'Default Value'
ELSE NULL
END AS [Other]
from emp_table
ORDER BY NAME
OVER
中的排序应与查询的顺序相匹配。
答案 1 :(得分:0)
SELECT ID,
name,
CASE
WHEN ID=1 THEN 'Default value'
ELSE NULL
END AS "Other"
FROM emp_table
答案 2 :(得分:0)
select
e1.ID, e1.name,
case when e1.id = e2.min_id then 'Default value' else NULL end as "Other"
from
emp_table e1, (select min(id) min_id from emp_table) e2