把表的竖向列变为横向一字段值(或 竖向变横向)

本文介绍了多种SQL技巧,包括如何使用递归查询和字符串拼接来获取表中特定字段的数据,将纵向表转换为横向表的方法,以及如何创建函数来处理表中的列。

例:

 表名: tb

内容:
 aa   bb   cc
  12   a    0
  13   b    0
  15   c    0

 


得到结果:
 @sql = '12,13,15'

 

--方法一

declare @sql varchar(1000)
set @sql = ''
select @sql = @sql + t.aa + ',' from (select aa from tb) as t
set @sql='select result = ''' + left(@sql , len(@sql) - 1) + ''''
exec(@sql)


--方法二
declare @output varchar(8000)
select @output = coalesce(@output + ',' , '') + aa from tb
print @output

 

 

--纵向表变成横向表(以sysobjects表为例)
declare @sql varchar(8000)
select @sql = 'select xtype,'
select @sql=@sql + 'Max(case name when '''+ name + ''' then id else null end)''' + name
+ ''',' from  (select * from sysobjects where xtype='u' ) a
select @sql = left(@sql,len(@sql) -1 )
select @sql=@sql + ' from sysobjects where xtype=''u'' group by xtype'
print(@sql)

 

 

 

 

---分组字符串相加 (以sysobjects表为例, 是否包含自动增加的列)


Create   function   f_columns(@a varchar(100))  
  returns   varchar(5000)  
  as  
  begin  
  declare   @return   varchar(5000)  
  select   @return=''  
  select   @return=@return+name+',' from syscolumns where id=@a 
  set @return = left(@return,len(@return)-1)
  return   @return  
  end  
GO 

 

select name,(select name from syscolumns where id=a.id and COLUMNPROPERTY(a.id,name,'IsIdentity')=1) fName,dbo.f_columns(id) allfield from sysobjects a where xtype='u' and name<>'dtproperties'

 

 

### 如何将ArcGIS生成的横向图像旋转为竖向 在ArcGIS中实现将横向图像转换为竖向展示的方式主要涉及以下几个方面: #### 使用PictureMarkerSymbol设置图形方向 当处理点要素时,可以通过`PictureMarkerSymbol`类中的参数来控制符号的方向和角度。例如,通过指定偏移量者旋转角度,可以使原本水平放置的图标变为垂直状态[^1]。 ```java // 创建个带有Drawable资源的PictureMarkerSymbol实例,并应用特定的角度调整。 PictureMarkerSymbol pic = new PictureMarkerSymbol(getResources().getDrawable(R.drawable.icon)); pic.setAngle(-90); // 设置负使标记顺时针旋转至接近竖直位置 Point pt = new Point(102.733, 25.05); Graphic g = new Graphic(pt, pic); graphicsLayer.addGraphic(g); ``` 此代码片段展示了如何利用`setAngle()`函数改图片标志物的姿态,从而达到视觉上的“站立”效果。 #### 调整文本标注方向 对于地图上的文字标签来说,使其呈现为纵向排能够显著改善布局紧凑情况下的可读性和美观程度。这步骤通常是在属性对话框里完成配置操作[^2]。 具体做法如下: - 打开目标图层的“Label Class”选项卡; - 定义好相应的字段作为基础之后进入高级编辑模式; - 寻找有关方位角设定的地方(般命名为Rotation Field 者 Orientation Settings),输入固定数比如'90'(完全笔直向上),也可以关联数据库里的某动态决定每条记录各自的倾斜度数; 这样就可以让所有的名称按照预期那样整齐划地沿Y轴延伸开来而不是横贯X轴了。 #### 自定义网格线样式 除了单独修改个别元素之外,整体框架结构也需要同步优化才能保持致性。针对之前提到过的那种初始状态下显得粗糙不堪的情况——即线条间距过大加上边缘部分超出边界等问题,则需重新规划整个网络体系[^3]: 步骤概述如下所示: 1. 右键单击Data Frame -> Properties...; 2. Switch over to the 'Grids & Graticules' section under Appearance tab ; 3. Click on Add New Grid..., choose appropriate type then follow wizard instructions until finish button appears. 4. During setup process pay attention especially towards settings related with interval size and orientation of labels at borders. 以上过程有助于构建更为精细合理的参照系,其中包含精确计算后的分隔距离以及合理安排好的边框处字符朝向等内容。 #### 处理特殊情况:修正错误摆放的图例项 有时候即使完成了前面所说的各项准备工作仍会遇到些棘手的小毛病比如说最终导出成果里面的某些组件依旧维持着反常姿态无法自动纠正过来。此时就需要采取额外措施手动干预解决问题[^4]. 种可行方案描述如下: - 正常情况下先按常规流程添加所需类型的图例部件进去项目当中去; - 如果发现存在顺序混乱现象的话不要急于删除重建而是应该仔细检查内部组成单元之间是否存在逻辑关系错位的现象; - 接下来尝试逐拆解重组直至恢复正常为止。 尽管这种方法相对耗时费力但如果找不到更简便快捷途径也不失为种有效手段。 #### 添加并美化经纬度坐标显示 最后为了进步完善作品外观还需要记得补充必要的辅助信息诸如地理位置指示等等[^5]. 执行要点举如下: 1. 切换到Layout View模式以便更好地掌控全局构图比例尺等因素影响; 2. 对选定的数据窗口进行右键菜单操作找到Properties入口; 3. 在弹出来的界面里定位到Grid/Graphics分类之下新增加项Grid实体出来; 4. 配合实际需求灵活调节各参数直到满意为止特别是要注意观察那些涉及到单位切换及格式化达方面的细节之处以免遗漏造成遗憾。 --- ### 总结 综上所述,要将在ArcGIS环境中产生的平面型态转变为立体感更强的形式并非难事只要掌握了正确的方法论就能轻松应对各种复杂情形。无论是简单的几何换还是复杂的综合设计都可以依靠这些基础知识加以实现。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值