Sql SELECT语句问题-将不同字段的数据合并到Gridview的一个单元格中

Sql SELECT语句问题-将不同字段的数据合并到Gridview的一个单元格中,sql,gridview,field,cell,selectcommand,Sql,Gridview,Field,Cell,Selectcommand,我对Gridview使用以下SELECT语句: SelectCommand="SELECT ID, Date, Train, I_R, Dir_Ind, Detn, Rly, DiV, Loco, Shed, locoClass, loco_type, (maj_sch_type + ','+ ' ' + maj_sch_place +',' +' '+ (CAST(maj_sch_dt as VARCHAR(11)) + ' '+'/' + ' ' + min_sch_type +','

我对Gridview使用以下SELECT语句:

  SelectCommand="SELECT ID, Date, Train, I_R, Dir_Ind, Detn, Rly, DiV, Loco, Shed, locoClass, loco_type,
(maj_sch_type + ','+ ' ' + maj_sch_place +',' +' '+ (CAST(maj_sch_dt as VARCHAR(11)) + ' '+'/' 
+ ' ' + min_sch_type +',' + ' ' + min_sch_place + ',' + ' '+(CAST(min_sch_dt as VARCHAR   (11))) ))    as "major",
 Equipt, I_R, reason 
 FROM PunctualityMain Order by Date ASC"
有了上面的内容,我将在单个单元格中从6 3+3个不同的SQL数据字段中获得结果,如下所示:

 POH, KPA, Jan 2 2012 / IB, Shed, Apr 18 2012

问题在于,每当“/”之前或之后的任何一组3个字段中的数据为空时,Gridview单元格将保持完全为空。如果两组字段的数据都大于Gridview dispaly,则如上所述是正常的。是否可以修改SELECT语句,以便在Gridview中显示任何一组字段为空的数据?

如果尝试将空字符串与非空字符串连接起来,结果将为空

Select NULL + 'test' 
这将返回NULL

另外,我认为您的代码没有很好地将粘贴复制到您的问题中,但是您需要使用ISNULL函数。我想你能理解这一点。您可能需要对代码进行一些清理,以使其运行。只需包装与ISNULLMyField连接的每个字段

SELECT 
    ID, 
    Date, 
    Train, 
    I_R, 
    Dir_Ind, 
    Detn, 
    Rly,    
    DiV, 
    Loco, 
    Shed, 
    locoClass, 
    loco_type,
    (isnull(maj_sch_type, '') + ', ' + isnull(maj_sch_place, '') +', '+ (isnull(CAST(maj_sch_dt as VARCHAR(11), '')) + ' / ' + isnull(min_sch_type, '') +', ' + isnull(min_sch_place, '') + ', '+ (isnull(CAST(min_sch_dt as VARCHAR   (11)), '')) ))    as "major",
     Equipt, 
    I_R, 
    reason 
 FROM PunctualityMain 
 Order by Date ASC
参考文献


是否尝试将此select语句拆分为子查询?您可以将where子句设置为检查空白结果。只是一时的想法,我真的不知道怎么了。