sql結果集限制與字串拼接

2021-06-07 09:11:58 字數 1762 閱讀 5915

1.限制結果集行數

1.1 mysql:使用limit關鍵字用來限制返回的結果集,limit放在select語句的最後位置,語法為「limit 首行行號,要返回的結果集的最大數目」

例如:select * from tablename order by id desc limit 2,5    //返回按照id降序排列的從第二行開始(行號從0開始)的最多五條記錄

1.2 mssqlserver2000:提供top關鍵字用來返回結果集中的前n條記錄,語法為「select top 限制結果集數目 字段列表 其餘部分」

例如:select top 5 * from tablename order by id desc;   //返回按照id降序排列排在前5位的資訊

select top 3 * from tablename where id not in (select top 5 * from tablename order by id desc) order by id desc;  //按照id降序排列找出第6位到第8位的資訊

1.3 mssqlserver2005:幾乎相容所有的mssqlserver2000的語法,在限制結果集行數上提供了視窗函式row_number(),可以計算第一行資料在結果集中的行號(從1開始),語法為「row_number over(排序規則)」,其中roe_number()不能用在where語句中

例如:select row_number() over(order by id),name from tablename    //返回有行數的資料

select * from (select row_number() over(order by id desc) as rownum,name from tablename) as a where a.rownum>=3 and a.rownum<=5;    //返回第3行到第5行的資料

1.4 oracle:支援視窗函式row_number(),用法與mssqlserver2005相同,不同的是rownum是oracle中的保留字,定義別名時也不用例as,rownum是oracle預設的表示行號的列

例如:select * from tablename where rownum<=6 order by id desc;     //返回按id降序排列的前6條資訊

2.字串的拼接

2.1 mysql:使用concat函式,語法為concat(str1,str2,...),還有乙個是concat_ws(separator,str1,str2,...),此可在待拼接的字串之間加入指定的分隔符,均可支援多個引數

例如:select concat('我是',『拿 來』,'測試的') from tablename;   //返回『我是拿 來測試的』

select concat_ws(',','aa','bb','cc') from tablename;    //返回『aa,bb,cc』

2.2 mssqlserver:使用「+」來拼接字串

例如:select id+name from tablename;     //返回id與name拼接後的字串,若id為001,name為aaa,則返回001aaa

2.3 oracle:使用『||』進行字串的拼接,也可以使用concat()函式進行拼接,但只支援兩個引數

例如:select id||name from tablename;    //返回id與name拼接後的字串,若id為001,name為aaa,則返回001aaa

select concat('name:',name) from tablename;   //若name為bbb,則返回name:bbb

SQL 拼接字串

寫sql的時候有時候用到需要拼接多個字段或者在查詢出結果的字段裡加入一部分固定的字串。方法一 在查詢到的結果後,用 去拼接。這種方法就不在贅述。方法二 使用資料庫提供的方法concat a,b oracle 中concat a,b 只能有兩個引數,如果concat中連線的值不是字串,那麼oracle...

sql字串拼接

oracle 使用 或者concat sql select aaa bbb from dual aaa bbb aaabbb sql select concat aaa ccc from dual concat aaa aaaccc mysql中,使用 如果字串全是數字則轉化為數字,否則轉換為0,也...

sql字串拼接

在sql語句中經常需要進行字串拼接,以sqlserver,oracle,mysql三種資料庫為例,因為這三種資料庫具有代表性。sqlserver select 123 456 oracle select 123 456 from dual 或select concat 123 456 from du...