SQL Server2005杂谈(4):在SQL Server2005中按列连接字符串的三种方法
2009-02-21 10:22:27 来源:WEB开发网图4
然后使用left join,以图4所示的表为最左边的表,进行连接,SQL语句如下:
selecta.xh,b.th1,c.th2,d.th3from
(selectxhfromt_tablegroupbyxh)a
leftjoin
(selectxh,valueasth1fromt_tablewhereth=1)bona.xh=b.xh
leftjoin
(selectxh,valueasth2fromt_tablewhereth=2)cona.xh=c.xh
leftjoin
(selectxh,valueasth3fromt_tablewhereth=3)dona.xh=d.xh
之所以使用left join,是因为按着th查询后,有的表的某些xh值可以没有,如图3中的第三个表,就没有0003。如果使用内连接,0003就无法在记录集中体现。这面的SQL的查询结果如图5所示。
图5
然后我们就可以使用如下的语句来连接th1、th2和th3了。
selectxh,(th1+th2+th3)asthfrommyview
myview表示将上面用left join的语句保存成的视图。
下面可以将这个过程写成一条SQL语句:
selectxh,(th1+th2+th3)asthfrom
(
selecta.xh, (casewhenb.th1isnullthen''elseb.th1end)asth1,
(casewhenc.th2isnullthen''elsec.th2end)asth2,
(casewhend.th3isnullthen''elsed.th3end)asth3
from
(selectxhfromt_tablegroupbyxh)a
leftjoin
(selectxh,valueasth1fromt_tablewhereth=1)bona.xh=b.xh
leftjoin
(selectxh,valueasth2fromt_tablewhereth=2)cona.xh=c.xh
leftjoin
(selectxh,valueasth3fromt_tablewhereth=3)dona.xh=d.xh
)x
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
- ››Sql server 2005拒绝了对对象 'xx表' (数...
更多精彩
赞助商链接