急!SQL高手请进:通过查询组合字符串的问题!表t 有三个字符串型字段 YYYY,MM,DD.分别代表年、月、日用什么SQL查询一下,把把三个字段组合成日期后显示的值相加后显示?
要求
如:
YYYY MM DD
2004
2005 12 7
2008 8
查询后显示:2004.7
2005.12.7
2008.8谢谢!

解决方案 »

  1.   

    Date('2005' + '-' + '12' + '-' + '7');
      

  2.   

    select OutPutCol = YYYY + '.' + MM + '.' + DD from t
      

  3.   

    SELECT CAST(YYYY, NVARCHAR) + CASE WHEN MM IS NULL THEN '' ELSE '.' + CAST(MM, NVARCHAR) + CASE WHEN DD IS NULL THEN '' ELSE '.' + CAST(DD, NVARCHAR)
      

  4.   

    SELECT CAST(YYYY, NVARCHAR) + CASE WHEN MM IS NULL THEN '' ELSE '.' + CAST(MM, NVARCHAR) END + CASE WHEN DD IS NULL THEN '' ELSE '.' + CAST(DD, NVARCHAR) END
      

  5.   

    Select (YYYY + '.' + MM +'.' + Case When DD Is Null Then '' Else DD End) As FieldName From TableName
      

  6.   

    还是俺自己这个好啊。呵呵
    select
    (case when to_char(t.YYYY)<>'' or to_char(t.YYYY) is not null then 
          (case when to_char(t.MM)<>'' or to_char(t.MM) is not null then
          ( 
          case when to_char(t.DD)<>'' or to_char(t.DD) is not null then
               concat(concat(to_char(t.YYYY),'.'),concat(concat(to_char(t.MM),'.'),to_char(t.DD)))
          else
               concat(concat(to_char(t.YYYY),'.'),to_char(t.MM)) end
          )
          else to_char(t.YYYY) end)
    else to_char(t.YYYY) end ) as 日期
    from t谢谢各位。