① sql 查詢欄位中的前幾個字
可以使用:substr( string, start_position, [ length ] );string:源字元串;start_position:提取的位置,字元串中第一個位置始終為1;[ length ]:提取的字元數,如果省略,substr將返回整個字元串;
針對本例舉例說明:
select * from 表名wheresubstr([D],1,2)=「10」
語句功能說明:從指定表中查詢D欄位第1、2個字元為「10的記錄」。
(1)sql前36擴展閱讀:
注意事項
語法:substr(string,start,length)
string參數:必選。資料庫中需要截取的欄位。
start參數:必選。
正數,從字元串指定位子開始截取;負數,從字元串結尾指定位子開始截取;0,在字元串中第一個位子開始截取。1,同理。(特殊)
length參數:可選。需要截取的長度。預設,即截取到結束位置。
注意:若必選參數為空,那返回的結果也為空。
② SQL語句如何取前10條,10-30條記錄
常用幾種資料庫,取前10條記錄的sql語句寫法。
access:
select top (10) * from table1 where 1=1
db2:
select column from table where 1=1 fetch first 10 rows only
mysql:
select * from table1 where 1=1 limit 10
sql server:
讀取前10條:select top (10) * from table1 where 1=1
讀取後10條:select top (10) * from table1 order by id desc
oracle:
select * from table1 where rownum<=10
取10-30條的記錄:
select top 20 * from 表名 where id not in(select top 10 id from 表名)
(2)sql前36擴展閱讀:
使用SQL從表中取記錄。
SQL的主要功能之一是實現資料庫查詢。如果你熟悉Internet 引擎,那麼你已經熟悉查詢了。你使用查詢來取得滿足特定條件的信息。
多數Internet 引擎允許邏輯查詢。在邏輯查詢中,你可以包括特殊的運算符如AND、OR和NOT,你使用這些運算符來選擇特定的記錄。
如果需要擴展查詢的結果,可以使用邏輯操作符OR。例如,如果執行一個搜索,搜索所有的其描述中包含Active Sever Pages OR SQL的站點,收到的列表中將包括所有其描述中同時包含兩個表達式或其中任何一個表達式的站點。
如果想從搜索結果中排除特定的站點,可以使用NOT。例如,查詢「Active Sever Pages 」AND NOT 「SQL」將返回一個列表,列表中的站點包含Active Sever Pages,但不包含SQL。當必須排除特定的記錄時,可以使用NOT。
用SQL執行的查詢與用Internet搜索引擎執行的搜索非常相似。 當執行一個SQL查詢時,通過使用包括邏輯運算符的查詢條件,你可以得到一個記錄列表。此時查詢結果是來自一個或多個表。
③ sql怎麼取字元串的前幾位
sql語句截取字元串前幾位語句:
select substr(cont_no,1,9) from for_contract
SUBSTRING ( expression , start , length )
expression:是字元串、二進制字元串、text、image、列或包含列的表達式。不要使用包含聚合函數的表達式。
start:是一個整數,指定子串的開始位置。
length:是一個整數,指定子串的長度(要返回的字元數或位元組數)。
eg:select id from users id的值是001.002$
select substring(ID,charindex('.',ID)+1,(charindex('$',ID)-charindex('.',ID)-1)) as idx
④ SQL難題:查詢所有學科成績都不及格的和總分排名前三名的
1、都不及格:
select
a.name,a.lesson,a.score
from
test
a,
(select
name,count(lesson)
as
cl
from
test
group
by
name)
b,
(select
name,count(lesson)
as
cl
from
test
where
score
<
60
group
by
name)
c
where
a.name=b.name
and
a.name=c.name
and
b.cl=c.cl
2、總分前三:(不太合理,學科不一樣,靠得越多,總分越高,業務需求有問題)
select
top
3
name,sum(score)
as
總分
from
test
gropu
by
name
order
by
2
回答者:
shaoshuai_bd
-
經理
五級
10-22
12:36
第二道題,二樓的寫法是sql
server的寫法,在oracle中是不能執行的,下面是
oracle中的寫法
select
*
from
(
select
name,sum(score)
as
z
from
a
group
by
name
order
by
z
desc)
where
rownum<=2
⑤ SQL 一張表的主鍵是36位的UUID,用以下語句語句插入數據是否會出現重復主鍵
不會重復,你都使用newid函數了,每次會自動生成不同的uuid的
⑥ sql中定義了一個CHAR36的欄位,現在想讓他自己生成6個字元,要唯一的。怎麼寫語句
SQL SERVER 這樣產生6位隨機字元,可以復制行來增加位數,試試吧
SELECT
SUBSTRING('',CONVERT(INT,FLOOR(RAND()*36+1)),1)
+SUBSTRING('',CONVERT(INT,FLOOR(RAND()*36+1)),1)
+SUBSTRING('',CONVERT(INT,FLOOR(RAND()*36+1)),1)
+SUBSTRING('',CONVERT(INT,FLOOR(RAND()*36+1)),1)
+SUBSTRING('',CONVERT(INT,FLOOR(RAND()*36+1)),1)
+SUBSTRING('',CONVERT(INT,FLOOR(RAND()*36+1)),1)
⑦ sql 怎麼取 字元串的前幾位
sql中,使用LEFT函數即可取到字元串的前幾位。
LEFT(c, number_of_char)用於返回某個被請求的文本域的左側部分,其中c代表被請求的文本域,number_of_cha代表需要取出的字元串位數。如「LEFT("..com", 6)」即可取得字元串""。
(7)sql前36擴展閱讀:
sql中,常用函數介紹:
1、AVG():返回平均值
2、COUNT():返回行數
3、FIRST():返回第一個記錄的值
4、LAST():返回最後一個記錄的值
5、MAX():返回最大值
6、MIN():返回最小值
7、SUM():返回總和
8、UCASE():將某個欄位轉換為大寫
9、LCASE():將某個欄位轉換為小寫
10、MID():從某個文本欄位提取字元
11、LEN():返回某個文本欄位的長度
12、ROUND():對某個數值欄位進行指定小數位數的四捨五入
13、NOW():返回當前的系統日期和時間
14、FORMAT():格式化某個欄位的顯示方式
15、INSTR():返回在某個文本域中指定字元的數值位置
16、LEFT():返回某個被請求的文本域的左側部分
17、RIGHT():返回某個被請求的文本域的右側部分
⑧ sql 取字元前幾位
left(字元串,要取的字元數)
從左邊第一個起取字元串的N個字元
樓上正解