SQL 如何把一列的值转换成一行显示

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL 如何把一列的值转换成一行显示相关的知识,希望对你有一定的参考价值。

例如 select a from tb ;
a 的值有
a1
a2
a3
怎么才能横着显示成 a1,a2,a3呢?
没明白,解释一下怎么用可以吗?

参考技术A declare @sql varchar(1000)
set @sql = ''
select @sql = @sql+ a + ','
from tb

select left(@sql,len(@sql)-1)本回答被提问者采纳
参考技术B 1、最原始的方法,利用 select....union
select 栏位1 from 表名 where 条件 union select 栏位2 from 表名 where 条件 select 栏位3 from 表名 where 条件 ......
2、利用 SYS_CONNECT_BY_PATH函数

SELECT SYS_CONNECT_BY_PATH(栏位, '>') "Path"
FROM 表名
START WITH 条件
CONNECT BY PRIOR 条件;
参考技术C 要使用你具体字段来写语句建议你参考:
http://www.cnblogs.com/Mr_JinRui/archive/2011/05/27/2060109.html

更改DataTable某列的值。C#

我从数据库里读出数据放到DataTable里面,但是因为数据库存放的数据有些数据需要进行中文转换,就是把一些一般人看不懂的字符改成中文,再在datagridview里面显示出来.C#如何做?

楼上几位说的方法太笨拙了
强大的datagridview怎么可能不提供类似这样的事件呢
CellFormatting //,就是把源数据显示成指定格式的数据,但不影响原有的数据,即数据源映射到控件的格式化操作
还提供了一个与之相反的操作
CellParsing //把已经修改的数据按指定格式解析回源数据
如果你的单元格是可修改的,这个事件一定要进行处理,至于具体的处理要根据你的要求来进行,使用方法你看一下它的说明提示吧.
参考技术A DataTable1.Rows[rowIndex][columnIndex]=Convert(DataTable1.Rows[0].ToString());

Convert方法是你的转换方法,如果不知道Rows里的columnIndex索引值,用列名也可以,DataTable1.Rows[rowIndex]["Column1"]。
至于显示,直接绑定到datagridview上就行了。
参考技术B 可以在dataGridView的RowDataBound事件里面进行转换
protected void gridview_RowDataBound(object sender, GridViewRowEventArgs e)

if (e.Row.RowType == DataControlRowType.DataRow)

e.Row.Cells[0].Text = string.Format("yyyy-MM-dd hh:mm:ss", e.Row.Cells[0].Text);

参考技术C 使用for循环datatable的row

以上是关于SQL 如何把一列的值转换成一行显示的主要内容,如果未能解决你的问题,请参考以下文章

在SqlServer2008R2中,根据分隔符把一列的值切割成多列

oracle数据库中如何将一列的内容转换成多行

Python一列的字符串分拆成三部分?

hibernate的hql把一列的结果集拼接成一个字符串

sql 查询出一列内容,如何让它成一行显示。

SQL把查询出的一个列转换成行