在SQL Server中如何输出行号
原文地址:http://www.dingos.cn/index.php?topic=1688.0
Oracle有rownum用于访问表中行号。那么在SQL Server中是否有等效的呢?或者在SQL Server中如何输出行号?
-----------------------------------
在SQL Server中没有直接等效于Oracle的rownum
-----------------------------------
严格说来,在关系数据库中,表中的行是没有序的并且行号没有正真的意义。如果需要这个功能,可以有如下三种考虑:
在表中添加一个自动增长列。
使用下列查询为每一行产生一个行号。下列查询为pubs数据库每一行产生一个行号。为这个查询工作,这个表必须哟唯一约束。
-----------------------------------------------
SELECT (SELECT COUNT(i.au_id)
from pubs..authors i
WHERE i.au_id >= o.au_id ) AS RowID,
au_fname + ' ' + au_lname AS 'Author name'
from pubs..authors o
ORDER BY RowID
-----------------------------------------
使用临时表实现,将整个结果集存储在一个临时表中,跟有一个由IDENTITY()函数参数的行号。创建临时表代价是比较昂贵的,尤其是对比较大的表进行操作。
相关文档:
最近刚学会在VB2008 中使用参数化SQL语句,于是马上用到代码中,却碰到查不到任何数据的情况,纠结了好几天,还是没有搞明白,差点吐血。不得已还是先在代码中使用字符串拼接的SQL语句。
包含参数化SQL语句的代码如下:
Dim cmSl As N ......
BOOL StartServer()
{
if(FAILED(CoInitialize(NULL)))
{
AfxMessageBox(_T("Com初始化失败"));
return FALSE;
}
_SQLServerPtr spSQLServer ......
SQL字符串函数
要看a的ASCII码,sql语句
select ascii(a)
要看ASCII码为56的字符
select char(56)
ASCII() --函数返回字符表达式最左端字符的ASCII 码值
CHAR() --函数用于将ASCII 码转换为字符
--如果没有输入0 ~ 255 之间的ASCII 码值CHAR 函数会返回一个NULL 值
LOWER() --函数把字符串全部转换为小写
UPPER() ......
本文以IBM的关系数据库管理系统DB2 Universal Database(通用数据库) 版本7.1为背景,与大家共同探讨编写好的SQL语句的技巧,以求DB2应用程序以求DB2应用程序获得更优的性能。
当我们设计一个新的或分析一个现存的系统时,其中所要考虑的一个重要问题就是应用程序的设计问题。即使数据库设计得很好而且还经过优化处理, ......
我经常问的一个问题是:你是如何来扩展SQL Database的?有很多的方法可以做到,比如使用缓存,共享或者用其他的技术将压力从数据库释放,但实际上我们没有。SQL Database从根本上来说是不具有扩展性的,我们也没有魔法使它忽然具有扩展性。
什么是扩展性?
必须具有几下几点:
横向扩展:更多的server可以带来更高的性能 ......