當前位置:首頁 » 編程語言 » 別人看不懂的sql
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

別人看不懂的sql

發布時間: 2022-05-06 11:53:59

sql的一段語句看不懂,求大神賜教

len(orgupcode) 代表 orgupcode 欄位所佔的長度
len(orgupcode)-2 就代表長度是這個欄位的長度-2那麼長
substring(orgupcode,0,len(orgupcode)-2) 首先substring是截取字元串函數,從最前邊開始取orgupcode欄位,但是後兩位不截取

updatet Organization set orgupcode
substring(orgupcode,0,len(orgupcode)-2)where orgupcode
not in ('001')
整個的意思就是修改Organization 表的orgupcode欄位,使其內容為目前orgupcode不截取後兩位那樣,條件是orgupcode不等於001

⑵ SQL語句看不懂

case when xxx then yyy end是個語法。
相當於java中的switch語句。
case
when sex = 1 then '男'
when sex = 2 then '女'
else '保密'
end
sum()是求和用的。
as表示顯示名是什麼。
你可以自行分析自己的sql了吧。

⑶ 看不懂的SQL 尋求幫助

select a.specimen_no,b.barcode,b.patient_code,b.patient_name,b.sex,b.age,b.age_unit,b.ward_id,c.ward_name,a.specimen_type_id,d.specimen_type_name ------這一段的意思是選擇列,a、b、c、d分別是表的別名

assay_specimen_info a,collect_specimen_info b,ward c ,specimen_type d
------這一段的意思就是選擇表,並分別規定表別名
where a.barcode=b.barcode and b.ward_id=c.ward_id and a.specimen_type_id=d.specimen_type_id and (specimen_no='')
----這一段的意思是設置條件,a表的barcode欄位值等於b表的barcode值,and(且)b表的ward_id等於c表的ward_id值,且a表的specimen_type_id等於d表的specimen_type_id,且 a表的specimen_no值為「」。
歸根結底就是一個多表查詢。

select distinct(a.specimen_no),a.micro_item_id,b.micro_item_name,a.micro_item_comment from assay_specimen_micro a,micro_item b where a.micro_item_id=b.micro_item_id and a.specimen_no>''and a.specimen_no<'' and anti_item_id<>'-1' order by specimen_no
這句的意思是從assay_specimen_micro和micro_item表中選出assay_specimen_micro的唯一欄位specimen_no以及a.micro_item_id,b.micro_item_name,a.micro_item_comment;查詢的條件是a表的micro_item_id等於b表的micro_item_id加上a表的specimen_no大於「」且a表的specimen_no小於「」且a表的anti_item_id不等於「-1」,再把結果根據specimen_no進行排序,默認升序asc。

<>就是不等於的意思

哎,很簡單的,都是一個道理,仔細看看就會懂的

⑷ 請幫忙分析下這句SQL語句,看不懂,小弟是菜鳥

select(查詢) c.id(company的id欄位) as comid(顯示的時候取個別名叫comid),comname(company的comname欄位), addre(company的addre欄位),c.name(company的name欄位) as cname(顯示的時候用取個別名叫cname),a.name(area的name欄位) as aname(顯示的時候取個別名叫aneme),row_number() over(order by c.id) as rownum,Num.回饋數 from company c(給company取個別名叫a) inner join(連表出現啊un) area a(給area取個別名叫a) on c.area=a.id(條件 類似 where c.area=a.id) inner join(連表查詢)(select count(*)(取出總數) as '回饋數'(顯示的時候取個別名叫回饋數),comid from prelist where(條件) prelist.city>0 group by comid) Num on c.id=Num.comid where estate=4 order by c.id(用company的id欄位進行排序)

⑸ SQL語句看不懂啊

Insert into Account (Account.CardID,Account.Score) 向Account表裡CardID和Score插入數據
Select Users.CardID,2 From Users 其中CardID關聯而來,score寫死了為2
left join Account on (Account.CardID=USers.CardID)
where Account.CardID is null --這個地方怪怪的,你確定不是 is not null?

然後數據來源是Users表左連接Account表 ,條件是Account的CardID欄位等於USers的CardID欄位
並且Account表裡的CardID 為空

⑹ sql語句看不懂,今天看了朋友寫的一個sql語句,沒看懂什麼意思,還望高手把它翻譯成通俗易懂的中文

這個應該是SQL2005以上版本的語句,且該語句用於臨時用途;
with關鍵字從resume表生成一個CTE(用表表達式,僅作用於單個查詢語句之內,可以認為是創建的命名臨時表)DayResumeStats;該CTE中篩選出所有不符合條件的NewResumes,
RefreshedResumes,OpenResumes,和 LowRankResumes;(看字面是篩選出所有非新的、未更新的、未開放的和低級別的簡歷),
delete 語句從該DayResumeStats中刪除所有YMD=@yesterday的記錄;,

⑺ 這個SQL語言查詢實在看不懂,求教。。。主要是not exist太頭疼了

思路是這樣的
1 查詢小明學過的課程
2 根據1查詢沒有學過小明選修課程的人(只要有個一課程沒有學就命中)
3 根據2查詢除了這些人以外的人(你的結果集中應該會有小明自己吧)
第一層select distinct sno from SC as A where not exists
第二層select * from S,SC as B where S.sname='小明' and B.sno=S.sno and not exists
第三層select * from SC as D where D.sno=A.sno and D.cno=B.cno
實際上比較費解的是第三層中的D.sno=A.sno and D.cno=B.cno
可以這樣理解 先不看not exists
第一層查的是所有的學生
第二層中有S.sname='小明' 實際查的是小明學過的課程
第三層查的是學過小明學過課程的所有學生
再帶著not exists從下往上看
第二層查的是小明學過的課程中沒有被自己學過的學生
第一層所有學生中除去有(小明學過但自己沒有學過的) 實際上就是只要小明學過自己就學過
不知道這樣表述是不是清楚 呵呵

⑻ sql 語句看不懂求解釋

select a.*,b.name as cname,c.username
from cms_article a
left outer join cms_category b on a.cid=b.id
left outer join cms_users c on a.created_by = c.userid
order by a.id desc
表名重命名你應該看得懂的吧。
依a表數據為主,若a.cid在b表中有記錄,則顯示b.name
依a表數據為主,若a.created_by在c表中有記錄,則顯示c.userid
這樣實現的好出是,記錄條數就是a表的條數。
a.cid,a.created_by在b,c表中有就顯示,無就不顯示,不會遺漏數據

⑼ 詭異的SQL語句求解!

& 是一個位運算符,將在兩個表達式之間執行「位與」邏輯運算,從兩個表達式取對應的位。當且僅當輸入表達式中兩個位(正在被解析的當前位)的值都為 1 時,結果中的位才被設置為 1;否則,結果中的位被設置為 0。

舉例說明:
170(假設為 A)的二進製表示形式是 0000 0000 1010 1010。
75(假設為 B)的二進製表示形式是 0000 0000 0100 1011。
對上述兩個值執行「位與」運算將產生二進制結果 0000 0000 0000 1010,即十進制數 10。

(A & B):
0000 0000 1010 1010
0000 0000 0100 1011
-------------------
0000 0000 0000 1010

即10.

<< 也是一個位運算符,表示左移。<<1即左移一位,舉例:
0101 (5)執行左移之後為:1010(10)其實也就是乘以2.

所以,
3 & (1<<(type-1))
就是
1乘以(type-1)個2之後再與「3」(二進制:0011)進行「位與」操作。
如果type-1 = 0 那麼1就不左移。即3&1,這個結果為
0011
0001
&之後為:
0001
結果為真。
該列將被記入結果集。

如果type-1>0
結果值最多是2,因為左移一位之後,最後端那個位必然是0,所以,結果要麼是2,要麼是0.如果為0,則該列不包含在結果集中。
如果還有不明,請加我網路HI.

第二次回答:

如果3被代入變數,那麼也是一樣的,進行運算,不過參與運算的值不同而已,這里並不是指第3列,而就是3這個值,轉換成二進制之後再做位運算。變數也是一樣的道理,沒有影響。關鍵取決於運算之後是不是0.如果為0,那麼這列就不在結果集內。

修正一個描述錯誤:
<<1 表示:左移一位。 剛才描述中,寫成了1<<。

⑽ 這個SQL語言查詢實在看不懂,求教。。。主要是not exist...

這個SQL語言查詢實在看不懂,求教。。。主要是not exist...
路是這樣的
1 查詢小明學過的課程
2 根據1查詢沒有學過小明選修課程的人(只要有個一課程沒有學就命中)
3 根據2查詢除了這些人以外的人(你的結果集中應該會有小明自己吧)
第一層select distinct sno from SC as A where not exists
第二層select * from S,SC as B where S.sname='小明' and B.sno=S.sno and not exists
第三層select * from SC as D where D.sno=A.sno and D.cno=B.cno
實際上比較費解的是第三層中的D.sno=A.sno and D.cno=B.cno
可以這樣理解 先不看not exists
第一層查的是所有的學生
第二層中有S.sname='小明' 實際查的是小明學過的課程
第三層查的是學過小明學過課程的所有學生
再帶著not exists從下往上看
第二層查的是小明學過的課程中沒有被自己學過的學生
第一層所有學生中除去有(小明學過但自己沒有學過的) 實際上就是只要小明學過自己就學過
不知道這樣表述是不是清楚 呵呵

順一門有百福 平安二字值千金 萬象更新