❶ sql語句的select用法
因為typeld是字元類型的,如果是數值型的就回這么寫'+typeld+'
舉個列子如果從A 表查詢到typeld的值是aaa,當轉變為可執行的語句的時候,sum這段會變成
sum(case when typeld='aaa' then usermoney else 0 end)
如果按數值型的寫法'+typeld+'
就會變成sum(case when typeld=aaa then usermoney else 0 end)
這里aaa是字元型數據,語法就回出錯了。
至於單引號和雙引號的問題,是這樣的:
兩個單引號內,如果需要表示字元的單引號,單引號就要寫成兩個單引號。
給你幾個語句執行看看結果就知道了
select '''' 這里是四個單引號 ,結果一個單引號
select '"' 這里是兩單引號內含一個雙引號 ,結果雙引號
select ''' 這里是三個單引號 ,結果 報錯了
❷ sql中select的作用是
作用就是從資料庫中檢索數據,並將查詢結果返回給用戶。
Select語句由select子句(查詢內容)、from子句(查詢對象)、where子旬(查詢條件)、order by子句(排序方式)、group by子句(分組方式)等組成。
計算列出在FROM中的所有元素。(FROM 中的每個元素都是一個真正的或者虛擬的表。)如果在 FROM 列表裡聲明了多過一個元素,那麼他們就交叉連接在一起。
如果聲明了WHERE子句,那麼在輸出中消除所有不滿足條件的行。如果聲明了GROUP BY子句,輸出就分成匹配一個或多個數值的不同組里。如果出現了HAVING子句,那麼它消除那些不滿足給出條件的組。
(2)sql的select使用擴展閱讀:
DISTINCT從結果中刪除那些重復的行。DISTINCT ON 刪除那些匹配所有指定表達式的行。ALL (預設)將返回所有候選行,包括重復的。
如果給出了LIMIT或者OFFSET子句,那麼 SELECT 語句只返回結果行的一個子集。
如果聲明了 FOR UPDATE 或者 FOR SHARE 子句, SELECT 語句對並發的更新鎖住選定的行。
你必須有 SELECT 許可權用來從表中讀取數值。使用 FOR UPDATE FOR SHARE 還要求UPDATE許可權。
❸ SQL中的SELECT命令的功能是
從表或視圖中檢索符合條件的數據。
select後面跟的是數據項列表
❹ SQL語句 select操作
select 語句 基本格式如下
select [列名],[列名]...[或*] from [表名] where 查詢條件 group by 分組條件 order by 排序條件
步驟閱讀
5
用法四,對查詢的結果按條件排序
select SUBSTRING(city,1,1),count(1) from city group by SUBSTRING(city,1,1)
order by COUNT(1) desc
對上述分組結果,按數據排序,由大到小
❺ 如何用select語句在SQL資料庫中查詢符合指定條件的記錄
描述:sql server 資料庫中使用條件查詢就可以實現符合查詢條件的數據記錄顯示出來。查詢語法為:select * from 表名 where 欄位名=條件(語法說明:select後面的*號代表的是所有欄位顯示出來。條件出的條件如果為字元型條件需要使用單引號引起來,如果是int類型不用引號),以下以某數據中的一張數據表user_user為例子,分別使用兩種查詢方式:
1、完整條件查詢語法為:select * from 表名 where 欄位名=條件
查詢語句:select * from user_user where Dname='管理員'
❻ SQL Select 語句的用法
以下是代碼片段:
SQL: select * into b from a where 1<>1說明:拷貝表(拷貝數據,源表名:a 目標表名:b)以下是代碼片段:
SQL: insert into b(a, b, c) select d,e,f from b;說明:顯示文章、提交人和最後回復時間以下是代碼片段:
SQL: select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b說明:外連接查詢(表名1:a 表名2:b)以下是代碼片段:
SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c說明:日程安排提前五分鍾提醒以下是代碼片段:
SQL: select * from 日程安排 where datediff(』minute』,f開始時間,getdate())>5
說明:兩張關聯表,刪除主表中已經在副表中沒有的信息
SQL: 以下是代碼片段:
delete from info where not exists ( select * from infobz where info.infid=infobz.infid 說明:--
SQL:
以下是代碼片段:
SELECT A.NUM, A.NAME, B.UPD_DATE, B.PREV_UPD_DATE
FROM TABLE1,
(SELECT X.NUM, X.UPD_DATE, Y.UPD_DATE PREV_UPD_DATE
FROM (SELECT NUM, UPD_DATE, INBOUND_QTY, STOCK_ONHAND
FROM TABLE2
WHERE TO_CHAR(UPD_DATE,』YYYY/MM』) = TO_CHAR(SYSDATE, 』YYYY/MM』)) X,
(SELECT NUM, UPD_DATE, STOCK_ONHAND
FROM TABLE2
WHERE TO_CHAR(UPD_DATE,』YYYY/MM』) =
TO_CHAR(TO_DATE(TO_CHAR(SYSDATE, 』YYYY/MM』) ¦¦ 』/01』,』YYYY/MM/DD』) - 1, 』YYYY/MM』) Y,
WHERE X.NUM = Y.NUM (+)
AND X.INBOUND_QTY + NVL(Y.STOCK_ONHAND,0) <> X.STOCK_ONHAND B
WHERE A.NUM = B.NUM說明:--
SQL: 以下是代碼片段:
select * from studentinfo where not exists(select * from student where studentinfo.id=student.id) and 系名稱=』"&strdepartmentname&"』 and 專業名稱=』"&strprofessionname&"』 order by 性別,生源地,高考總成績說明:
從資料庫中去一年的各單位電話費統計(電話費定額賀電化肥清單兩個表來源)
SQL:
以下是代碼片段:
SELECT a.userper, a.tel, a.standfee, TO_CHAR(a.telfeedate, 』yyyy』) AS telyear,
SUM(decode(TO_CHAR(a.telfeedate, 』mm』), 』01』, a.factration)) AS JAN,
SUM(decode(TO_CHAR(a.telfeedate, 』mm』), 』02』, a.factration)) AS FRI,
SUM(decode(TO_CHAR(a.telfeedate, 』mm』), 』03』, a.factration)) AS MAR,
SUM(decode(TO_CHAR(a.telfeedate, 』mm』), 』04』, a.factration)) AS APR,
SUM(decode(TO_CHAR(a.telfeedate, 』mm』), 』05』, a.factration)) AS MAY,
SUM(decode(TO_CHAR(a.telfeedate, 』mm』), 』06』, a.factration)) AS JUE,
SUM(decode(TO_CHAR(a.telfeedate, 』mm』), 』07』, a.factration)) AS JUL,
SUM(decode(TO_CHAR(a.telfeedate, 』mm』), 』08』, a.factration)) AS AGU,
SUM(decode(TO_CHAR(a.telfeedate, 』mm』), 』09』, a.factration)) AS SEP,
SUM(decode(TO_CHAR(a.telfeedate, 』mm』), 』10』, a.factration)) AS OCT,
SUM(decode(TO_CHAR(a.telfeedate, 』mm』), 』11』, a.factration)) AS NOV,
SUM(decode(TO_CHAR(a.telfeedate, 』mm』), 』12』, a.factration)) AS DEC
FROM (SELECT a.userper, a.tel, a.standfee, b.telfeedate, b.factration
FROM TELFEESTAND a, TELFEE b
WHERE a.tel = b.telfax) a
GROUP BY a.userper, a.tel, a.standfee, TO_CHAR(a.telfeedate, 』yyyy』)說明:四表聯查問題:SQL: 以下是代碼片段:
select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....說明:得到表中最小的未使用的ID號
SQL: 以下是代碼片段:
SELECT (CASE WHEN EXISTS(SELECT * FROM Handle b WHERE b.HandleID = 1) THEN MIN(HandleID) + 1 ELSE 1 END) as HandleID
FROM Handle
WHERE NOT HandleID IN (SELECT a.HandleID - 1 FROM Handle a)
❼ SQL Select 語句的用法
以下是代碼片段:
SQL:
select
*
into
b
from
a
where
1<>1說明:拷貝表(拷貝數據,源表名:a
目標表名:b)以下是代碼片段:
SQL:
insert
into
b(a,
b,
c)
select
d,e,f
from
b;說明:顯示文章、提交人和最後回復時間以下是代碼片段:
SQL:
select
a.title,a.username,b.adddate
from
table
a,(select
max(adddate)
adddate
from
table
where
table.title=a.title)
b說明:外連接查詢(表名1:a
表名2:b)以下是代碼片段:
SQL:
select
a.a,
a.b,
a.c,
b.c,
b.d,
b.f
from
a
LEFT
OUT
JOIN
b
ON
a.a
=
b.c說明:日程安排提前五分鍾提醒以下是代碼片段:
SQL:
select
*
from
日程安排
where
datediff(』minute』,f開始時間,getdate())>5
說明:兩張關聯表,刪除主表中已經在副表中沒有的信息
SQL:
以下是代碼片段:
delete
from
info
where
not
exists
(
select
*
from
infobz
where
info.infid=infobz.infid 說明:--
SQL:
以下是代碼片段:
SELECT
A.NUM,
A.NAME,
B.UPD_DATE,
B.PREV_UPD_DATE
FROM
TABLE1,
(SELECT
X.NUM,
X.UPD_DATE,
Y.UPD_DATE
PREV_UPD_DATE
FROM
(SELECT
NUM,
UPD_DATE,
INBOUND_QTY,
STOCK_ONHAND
FROM
TABLE2
WHERE
TO_CHAR(UPD_DATE,』YYYY/MM』)
=
TO_CHAR(SYSDATE,
』YYYY/MM』))
X,
(SELECT
NUM,
UPD_DATE,
STOCK_ONHAND
FROM
TABLE2
WHERE
TO_CHAR(UPD_DATE,』YYYY/MM』)
=
TO_CHAR(TO_DATE(TO_CHAR(SYSDATE,
』YYYY/MM』)
¦¦
』/01』,』YYYY/MM/DD』)
-
1,
』YYYY/MM』)
Y,
WHERE
X.NUM
=
Y.NUM
(+)
AND
X.INBOUND_QTY
+
NVL(Y.STOCK_ONHAND,0)
<>
X.STOCK_ONHAND
B
WHERE
A.NUM
=
B.NUM說明:--
SQL:
以下是代碼片段:
select
*
from
studentinfo
where
not
exists(select
*
from
student
where
studentinfo.id=student.id)
and
系名稱=』"&strdepartmentname&"』
and
專業名稱=』"&strprofessionname&"』
order
by
性別,生源地,高考總成績說明:
從資料庫中去一年的各單位電話費統計(電話費定額賀電化肥清單兩個表來源)
SQL:
以下是代碼片段:
SELECT
a.userper,
a.tel,
a.standfee,
TO_CHAR(a.telfeedate,
』yyyy』)
AS
telyear,
SUM(decode(TO_CHAR(a.telfeedate,
』mm』),
』01』,
a.factration))
AS
JAN,
SUM(decode(TO_CHAR(a.telfeedate,
』mm』),
』02』,
a.factration))
AS
FRI,
SUM(decode(TO_CHAR(a.telfeedate,
』mm』),
』03』,
a.factration))
AS
MAR,
SUM(decode(TO_CHAR(a.telfeedate,
』mm』),
』04』,
a.factration))
AS
APR,
SUM(decode(TO_CHAR(a.telfeedate,
』mm』),
』05』,
a.factration))
AS
MAY,
SUM(decode(TO_CHAR(a.telfeedate,
』mm』),
』06』,
a.factration))
AS
JUE,
SUM(decode(TO_CHAR(a.telfeedate,
』mm』),
』07』,
a.factration))
AS
JUL,
SUM(decode(TO_CHAR(a.telfeedate,
』mm』),
』08』,
a.factration))
AS
AGU,
SUM(decode(TO_CHAR(a.telfeedate,
』mm』),
』09』,
a.factration))
AS
SEP,
SUM(decode(TO_CHAR(a.telfeedate,
』mm』),
』10』,
a.factration))
AS
OCT,
SUM(decode(TO_CHAR(a.telfeedate,
』mm』),
』11』,
a.factration))
AS
NOV,
SUM(decode(TO_CHAR(a.telfeedate,
』mm』),
』12』,
a.factration))
AS
DEC
FROM
(SELECT
a.userper,
a.tel,
a.standfee,
b.telfeedate,
b.factration
FROM
TELFEESTAND
a,
TELFEE
b
WHERE
a.tel
=
b.telfax)
a
GROUP
BY
a.userper,
a.tel,
a.standfee,
TO_CHAR(a.telfeedate,
』yyyy』)說明:四表聯查問題:SQL:
以下是代碼片段:
select
*
from
a
left
inner
join
b
on
a.a=b.b
right
inner
join
c
on
a.a=c.c
inner
join
d
on
a.a=d.d
where
.....說明:得到表中最小的未使用的ID號
SQL:
以下是代碼片段:
SELECT
(CASE
WHEN
EXISTS(SELECT
*
FROM
Handle
b
WHERE
b.HandleID
=
1)
THEN
MIN(HandleID)
+
1
ELSE
1
END)
as
HandleID
FROM
Handle
WHERE
NOT
HandleID
IN
(SELECT
a.HandleID
-
1
FROM
Handle
a)
❽ 資料庫中select的用法
資料庫中select的用法的用法你知道嗎?下面我就跟你們詳細介紹下資料庫中select的用法的用法,希望對你們有用。
資料庫中select的用法的用法如下:
1、select語句可以用回車分隔
?
1
2
3
4
$sql="select * from article where id=1"
和
$sql="select * from article
where id=1",都可以得到正確的結果,但有時分開寫或許能更明了一點,特別是當sql語句比較長時
2、批量查詢數據
氏兆衫?
1
2
可以用in來實現
$sql="select * from article where id in(1,3,5)"
3、使用concat連接查詢的結果
?
1
$sql="select concat(id,"-",con) as res from article where id=1"
返回"1-article content"
4、使用locate
用法:
select locate("hello","hello baby");返回1
不存在返回0
5、使用group by
以前一直沒怎麼搞明group by 和 order by,其實也滿簡單的,group by 是把相同的結果編為一組
?
1
exam:$sql="select city ,count(*) from customer group by city";
這句話的意思就是從customer表裡列出所有不重復的城市,及其數量(有點類似distinct)
group by 經常與AVG(),MIN(),MAX(),SUM(),COUNT()一起使用
6、使用having
having 允許有條件地聚合數據為組
?
1
2
$sql="select city,count(*),min(birth_day) from customer
group by city having count(*)>10";
這句話是先按city歸組,然後找出city地數量大於10的城市
btw:使用group by + having 速度有點慢
同時having子句包含的表達式必須在之前出現過
7、組合子句
where、group by、having、order by(如果這四個都要使用的話,一般按這個順序排列)
8、使用distinct
distinct是去掉重復值用的
?
1
$sql="select distinct city from customer order by id desc";
這句話的意思就是從customer表中查詢所有的不重復的city
9、使用limit
如果要顯示某條記錄之後的所有記錄
?
1
$sql="select * from article limit 100,-1";
10、多表查猜飢詢
?
1
2
3
4
$sql="select user_name from user u,member m
where u.id=m.id and
m.reg_date>=2006-12-28
殲腔order by u.id desc"
❾ SQL之SELECT語句
檢索數據的SQL語句,就是SELECT語句。
使用SELECT語句可以從表中檢索出一個或多個數據列。
如何使用SELECT語句,我們應該告訴SELECT語句從什麼地方選擇什麼。
這是一個簡單的SELECT語句,表示從procts表內檢索一個名為prod_name的列。
所需要的列名在SELECT關鍵字後給出,FROM關鍵字指出檢索數據的表名。
要想從一個表中檢索多個列,使用相同的SELECT語句。唯一的不同是必須在SELECT關鍵字後給出多個列名,列名之間必須以逗號分隔。
SELECT語句通過在列名的位置使用星號(*)通配符,可以檢索所有的列而不必逐個列出它們。
SELECT語句返回所有匹配的行,它們可能是指定表中的每個行。為了返回第一行或前幾行,可使用LIMIT子句。
❿ SQL中的SELECT命令的功能是
「查詢」操作指令。