sql 笔记之一
1、select 指定的字段要么要包括在聚合函數中,要么就要跟在group by的后面作為分組的依據。
?PS:可以用Max()函數括起來必須要查的非數字型的字段。
2、distinct 用于返回唯一不同的值
例:select distinct company from orders。--一個公司名稱只能查詢到一次
3、12356 和12346
union all? 12356 12346 (顯示所有的數據)
union? ? ? ? ? ? 結果集? ? ? 123456? ? ? ? ? (并集,包含所有的元素,去除重復的值)
intersect? ? ? ? ? ? ? ? ? ? ? ? ?? 1236 (交集)
4、一次插入多條數據
a:
insert into tableA (列一,列二)
select 值一,值二
union? ?/union all? ? ?-----union 是相同值記錄只插入一次,不重復插入? union all會重復插入
select 值三,值四
b:
insert into tableA(列一,列二) values(值一,值二),(值3,值4),(值5,值6),(值7,值8),(值9,值10)
c:從另一個表中讀取多條數據添加到新表中
insert into table(lie1,lie2)
select? a,b from tableA where a=1-----從一個表中讀取數據
insert into table(lie1,lie2)
select? a,b from tableA where a=1
union all
select? a,b from tableB where a=2 ---從多個表中讀取數據
5、Case when then else end? ?
---簡單的
Case Sex
? ? ? when '1' then ‘男’?
? ? ? when '2' then ‘女’
else ‘其他’
END
---搜索函數
Case when sex=1 then??‘男’?
? ? ? ? ? ? ? ? ?sex=?'2' then ‘女’
else ‘其他’
END
6、decimal(a,b) 規定的是存儲的值不會超過a位數字,小數點后面有b位? ? 0=<b=<a
例:decimal(5,2)存儲的值不會超過5位數字,小數點后面有2位數字
7、decimal? float double的區別
?
float:浮點型,含字節數為4,32bit,數值范圍為-3.4E38~3.4E38(7個有效位)
?
double:雙精度實型,含字節數為8,64bit數值范圍-1.7E308~1.7E308(15個有效位)
?
decimal:數字型,128bit,不存在精度損失,常用于銀行帳目計算。(28個有效位)
float f = 345.98756f;--結果顯示為345.9876,只顯示7個有效位,對最后一位數四舍五入。double d=345.975423578631442d;--結果顯示為345.975423578631,只顯示15個有效位,對最后一位四舍五入。--注:float和double的相乘操作,數字溢出不會報錯,會有精度的損失。float與double相乘結果類型是doubledecimal dd=345.545454879.....--可以支持28位,對最后一位四舍五入。--:當對decimal類型進行操作時,數值會因溢出而報錯。8、with ties
?select top 8 * ? from tablett order by state desc
?
select top 8 with ties * ? from tablett order by state desc
?
區別就是用了with ties?最后一行的參數值(在這句里是state相同 ) 如果相同的話 會都顯示出來
?
額外的返回行的參數值與TOP n(PERCENT)行中的最后一行的該參數值相同。這個地方該怎么理解呢?其實是如果按照order by 參數排序TOP n(PERCENT)返回了前面n(pencent)個記錄,但是n+1…n+k條記錄和排序后的第n條記錄的參數值(order by 后面的參數)相同,則n+1、…、n+k也返回。n+1、…、n+k就是額外的返回值。
?
轉載于:https://www.cnblogs.com/jksun/p/9164206.html
總結
                            
                        - 上一篇: mock 测试 MVC
 - 下一篇: ASP.NET MVC学习:MVC 特性