一直以來只知道下完 Insert Into 之後要取得新增後的 key 值要用
INSERT INTO Test ([name]) VALUES ('jack');
SELECT @@IDENTITY as id
以前小時候剛寫程式時更笨,下完Insert 之後還要下 Select + order by 去找
但是剛剛發現居然可以這樣用........我現在才知道實在太蠢了 @@
一直以來只知道下完 Insert Into 之後要取得新增後的 key 值要用
INSERT INTO Test ([name]) VALUES ('jack');
SELECT @@IDENTITY as id
以前小時候剛寫程式時更笨,下完Insert 之後還要下 Select + order by 去找
但是剛剛發現居然可以這樣用........我現在才知道實在太蠢了 @@
你有沒有在每次瘋狂的打完 SQL 命令準備要按執行 or F5 的時候
都會看一下你準備要執行命令的 Server 到底是線上還線下 (抖~)
萬一有時候下錯地方是會死人的
今天又學到了一個很實用的東西,有關於 MS SQL 工具的操作 (SSMS)
就是~
今天又遇到了一個功能讓我需要把資料表做橫轉直的動作
所以再來練習一次
http://technet.microsoft.com/zh-tw/library/ms177410.aspx
假設有一個 SQL 長這樣
select a.bokno,a.title,isnull(c.title,0) as kind,isnull(c.kno,0) as kno,a.fedat
from dbo.vwSearchKids a left outer join dbo.KidBooks b on a.bokno = b.bokno
left outer join KidBookKnd c on b.kind = c.kno
最近因為出包了所以要撈訂單
但因為邏輯有點複雜覺得組SQL快要我命,所以後來寫程式解決了
但是坐我隔壁的新主管大鈞跟我說可以試試看用 CURSOR 來做
他雖然給了我範例,但我已經用程式寫完了
不過覺得很好奇所以又用他給的範例寫了一遍
但他有提醒我用這東東要非常小心......弄得不好會影響到線上服務
今天想把一串 SQL 弄成 SQL view 的時候發現下面的 error
"SQL文字無法顯示在方格窗格與圖表窗格中"
但其實這是同事的錯誤訊息,我的是管理工具直接整個關閉 = =
老實講看不太懂,我只知道這SQL直接run是沒問題的~
每次都要上網找而且都忘記,特此筆記
SELECT TOP 每頁資料筆數 *
FROM (
SELECT *,ROW_NUMBER() OVER (ORDER BY rank) AS RowNumber FROM table
) A
WHERE RowNumber > 每頁資料筆數 * (目前頁數 - 1)
覺得寫的淺顯易懂~
所以拿來筆記 XD
來源出處 : http://www.wretch.cc/blog/hcu16b/10264132
1、資料庫設計與規劃
• Primary Key 欄位的長度儘量小,能用 small integer 就不要用 integer。例如員工資料表,若能用員工編號當主鍵,就不要用身分證字號。
一般來說SQL用 in 的話順序會被打亂
ex :
select prodno,cname,sprice,brand name
from productview
where prodno in ('567105010062','503903020005','510505040001')
出來是
前言...
之前用Oracle 的時候使用 Row_Number() + PARTITION 後可以在外面加上 select * () where ....去過濾 partition 出來的東西
但是偶在 MS-SQL 試的結果會出現 接近 ')' 之處的語法不正確。
ex:
select row_number() over(partition by a.id order by a.createdate desc) as rowno ,