如何在sql select语句中创建列并设置默认值

如何在sql select语句中创建列并设置默认值,sql,teradata,Sql,Teradata,我正在尝试为已经派生的列“Sub1”设置默认文本值,这可能吗?我已使用值0为要派生的列创建了占位符。我在Teradata工作,如果有关系的话。。。。。谢谢 select c_clm ,dt.Claimant_Name ,dt.i_ssn ,0 as "Time_Period" ,0 as "Unit_ID", /*,idv.C_PDT AS "Product" ,er.C_FRM_POL AS "Group Product",*/ (case when idv.c_pdt is null th

我正在尝试为已经派生的列“Sub1”设置默认文本值,这可能吗?我已使用值0为要派生的列创建了占位符。我在Teradata工作,如果有关系的话。。。。。谢谢

select c_clm
,dt.Claimant_Name
,dt.i_ssn
,0 as "Time_Period"
,0 as "Unit_ID",
/*,idv.C_PDT AS "Product"
,er.C_FRM_POL AS "Group Product",*/
(case
 when idv.c_pdt is null then 'GLTC' 
 else idv.c_pdt
 end) as "Product_ID"
,c_ams_clm as "DBS_UserID"
,upc_indiv_org_id as "DBS_EEID"
,0 as "Categ"
,0 as Categ_sort
,0 as "Sub1"
,0 as "Sub1_Sort"
,0 as "Sub2"
,0 as "Sub2_Sort"
,0 as "MTD_Num" 
,0 as "MTD_Denom"
,dt.i_pol as "Policy_Number"
,COALESCE (erpol.n_pol,idv.n_pol, ks.n_pol) 

您是否正在尝试这样做:

select '0' as Sub1
可以直接指定文本值,方式与数字相同

或者,当SELECT中的列为NULL时,您是否尝试为该列赋值。为此,请使用合并:

select coalesce(Sub1, '0') as Sub1

如果您询问如何使用字符串常量填充列,只需在单引号中加上一个名称即可。通常最好指定所需的列类型。例如:

select 'Text String' (VARCHAR(255)) as sub1

请注意,如果使用双引号,Teradata会认为您引用的是该名称的列(因此收到错误消息)。

您如何派生此列?在什么条件下会应用此“默认值”?您所说的“默认文本值”是什么意思?您是指列的
标题
,还是要将零转换为文本字符串?我的意思是,现在它创建列“Sub1”,其中有一个值“0”。我希望在列“Sub1”的每一行中插入一个值“text”,而不是“0”。“默认文本值”?基于什么标准?理想情况下,我希望选择“default value”作为sub1,这样在sub1的每一行中,我都会得到“default value”作为字符串。如果我尝试选择“defaultvaluehere”作为sub1,我会得到一个错误“defaultvaluehere column not found”