你可以这样写试一下(只后面几句,前面的不变)
SET @Sql='select * into #ForMonth from #TotalSalesForMonth pivot (sum(total) for monthN in ('+@str+') ) as pvt '
drop table #ForMonth --删除临时表exec(@Sql)
go和其他语言一样,可以申明新的“结构体”,struct可以作为其他类型的属性活字段的容器,定义方式如下:
type 关键字申明 person 为 struct 类型,person包含 name 属性和 age 属性,对应的类型为 string 和 int 。我们看看如何使用struct:
除了上面使用的方式使用 struct ,还有三种方式可以使用申明struct类型
完整是使用struct 例子
当我们创建结构体时,字段可以只有类型,而没有字段名。这样的字段称为匿名字段(Anonymous Field)。习惯上匿名字段叫内嵌,具名字段叫组合
上面我们申明了两个结构体 Student 和 Person ,其中 Student 组合了 Person 字段,那么 Student 包含了 Person 中的所有字段
从上面的例子可以看出来,struct 不仅可以将struct作为匿名字段,自定义类型、内置类型都可以作为匿名字段,也可以进行相应的函数 *** 作。
这里我们有个问题,Person上有一个name属性,如果Student上也有一个name属性,那么我们怎么办呢?其实在go里面,最外层的属性具有有限的访问权限,当你通过Student.name访问的时候是访问Student上的属性。同理,我们可以通过Student.Person访问Person上的属性,如:
如果结构体的全部成员都是可以比较的,那么结构体也是可以比较的,那样的话两个结构体将可以使用 == 或 != 运算符进行比较,但不支持 >或 <。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)