WEB开发网
开发学院数据库MSSQL Server SQL Server2005杂谈(4):在SQL Server2005中按列... 阅读

SQL Server2005杂谈(4):在SQL Server2005中按列连接字符串的三种方法

 2009-02-21 10:22:27 来源:WEB开发网   
核心提示: 由于null加上任何字符串都为null,因此,SQL Server2005杂谈(4):在SQL Server2005中按列连接字符串的三种方法(4),使用case语句来将null转换为空串,上面的SQL就会得到图2所示的查询结果,SQL Server项目会要求连接一个数据库,我们可以选择一

由于null加上任何字符串都为null,因此,使用case语句来将null转换为空串。上面的SQL就会得到图2所示的查询结果。也许有的读者会问,如果th的可能取值可变呢!如xh为0001的th值四个:1至4。 那上面的SQL不是要再加一个left join吗?这样不是很不通用。 要解决这个问题也很容易。可以使用程序(如C#、Java等)自动生成上述的SQL,然后由程序提交给数据库,再执行。 当然,这需要程序事先知道th值对于当前程序最多有几个值,然后才可以自动生成上述的SQL语句。

这种方法几乎适合于所有的数据库,不过如果th的取值比较多的话,可能SQL语句会很长,但是如果用程序自动生成的话,就不会管这些了。

三、使用C#实现SQL Server2005的扩展聚合函数(当然,也可以用VB.NET)

这一种方法笔者认为是最“酷”的方法。因为每一个人都只想写如下的SQL语句就可以达到目录。

selectxh,dbo.joinstr(value)fromt_tablegroupbyxh

其中joinstr是一个聚合函数,功能是将每一组的某个字符串列的值首尾连接。上面的SQL也可以查询图2所示的结果。但遗憾的是,sql server2005并未提供可以连接字符串的聚合函数。下面我们就来使用C#来实现一个扩展聚合函数。

首先用VS2008/VS2005建立一个SQL Server项目,如图6所示。

SQL Server2005杂谈(4):在SQL Server2005中按列连接字符串的三种方法

图6

点击“确定”按钮后,SQL Server项目会要求连接一个数据库,我们可以选择一个数据库,如图7所示。

上一页  1 2 3 4 5 6  下一页

Tags:SQL Server 杂谈

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接