請參考來源
--
可運用 FOR XML PATH('') 來處理
SELECT T1.id, ( STUFF( (
SELECT ',' + [name]
FROM t
WHERE T.id = T1.id
FOR XML PATH('')
), 1, 1, ''
)
) AS [name]
FROM T1
GROUP BY id
2013年6月6日 星期四
多筆記錄合併成一筆
參考引用
--
***這個方法是採用迴圈方式去處理
假設TableA為 tableA(food,price),裡面有資料如下:
food | price
西瓜 20
蘋果 50
香蕉 20
鳳梨 30
接下來想把相同金額的水果進行分類,想要的格式如下:
(用逗號分隔水果的話,輸出成csv格式就會自動再分格成不同欄位唷!)
#tempA
price | food
20 西瓜,香蕉
30 鳳梨
50 蘋果
指令:
--先將
select distinct price , cast(' ' as varchar(max)) into #tempA from tableA
--宣告游標
DECLARE food_cursor CURSOR for select * from #tempA
OPEN food_cursor
--宣告變數
DECLARE @result varchar(200) --進行字串串接使用
DECLARE @food varchar(50)
DECLARE @price varchar(50)
DECLARE @cmd varchar(200) --debug時,輸出select指令
--將游標指向下一筆紀錄,擷取值設進@food以及@price
FETCH NEXT FROM tables_cursor INTO @food,@price
--開始跑迴圈
WHILE (@@FETCH_STATUS <> -1)
BEGIN
--set @cmd = 'select food,@result='+@result+ ',price from (select food from #tempA where price=' + @price+')Duration'
set @result=''
select @result=@result+','+food from (select food from #tempA where price=@price)Duration
--PRINT 'Contact Name after: ' + @food + '_' + @price + '_' + @result+'---'+@cmd
update #tempA set result=rtrim(@result) where price=@price
FETCH NEXT FROM food_cursor INTO @food,@price
end
CLOSE food_cursor
DEALLOCATE food_cursor
--
***這個方法是採用迴圈方式去處理
假設TableA為 tableA(food,price),裡面有資料如下:
food | price
西瓜 20
蘋果 50
香蕉 20
鳳梨 30
接下來想把相同金額的水果進行分類,想要的格式如下:
(用逗號分隔水果的話,輸出成csv格式就會自動再分格成不同欄位唷!)
#tempA
price | food
20 西瓜,香蕉
30 鳳梨
50 蘋果
指令:
--先將
select distinct price , cast(' ' as varchar(max)) into #tempA from tableA
--宣告游標
DECLARE food_cursor CURSOR for select * from #tempA
OPEN food_cursor
--宣告變數
DECLARE @result varchar(200) --進行字串串接使用
DECLARE @food varchar(50)
DECLARE @price varchar(50)
DECLARE @cmd varchar(200) --debug時,輸出select指令
--將游標指向下一筆紀錄,擷取值設進@food以及@price
FETCH NEXT FROM tables_cursor INTO @food,@price
--開始跑迴圈
WHILE (@@FETCH_STATUS <> -1)
BEGIN
--set @cmd = 'select food,@result='+@result+ ',price from (select food from #tempA where price=' + @price+')Duration'
set @result=''
select @result=@result+','+food from (select food from #tempA where price=@price)Duration
--PRINT 'Contact Name after: ' + @food + '_' + @price + '_' + @result+'---'+@cmd
update #tempA set result=rtrim(@result) where price=@price
FETCH NEXT FROM food_cursor INTO @food,@price
end
CLOSE food_cursor
DEALLOCATE food_cursor
T-SQL 使用純量變數 求當月有幾天
CREATE FUNCTION dbo.fn_dayofmonth (@dt datetime)
RETURNS int AS
BEGIN
declare @nextmonth datetime
set @nextmonth=dateadd(m,1,@dt)
return(day(dateadd(day,-day(@nextmonth),@nextmonth)))
END
取得資料庫中所有的資料表名稱 + 取得某一資料表的所有欄位名稱
引用來源
--
最近在寫程式時有用到,主要是因為對方的資料庫不給還原、附加,只他X的給你個SQL 語法介面,要麻你就執行SQL插入,要麻你就等對方幫你匯入,
不過對方說要排隊,所以乾脆自己些產生資料表資料插入語法,引此找了一些特殊的SQL語法:
1.取得資料庫表單數量
select count(*) as totaltablenumber from sysobjects where xtype = 'U';
2.取得資料表名稱(tablename)及欄位數量(columnnumber)
select name as tablename, info as columnnumber from sysobjects where xtype = 'U';
3.取得某一資料表內所有欄位名稱
select b.name from sysobjects as a, syscolumns as b where a.xtype = 'U' and a.id = b.id and a.name='資料表單名稱';
3.1 取得某一資料表內所有欄位名稱
EXEC sp_columns 表單名稱
4.另外3的話不會照欄位順序排,請加入: order by b.colorder
5.取得資料庫所有資料表名稱
select * from sysobjects where xtype = 'U'
以上為SQL 2000 OK 2005請使用下列語法
6.在SQL SERVER 2005抓取資料庫的SQL語法
select name from master.dbo.sysdatabases
7.抓取資料表的SQL語法
select Table_name from INFORMATION_SCHEMA.TABLES order by Table_name
8.抓取欄位的SQL語法
select column_name from INFORMATION_SCHEMA.COLUMNS where table_name='TableName'
--
最近在寫程式時有用到,主要是因為對方的資料庫不給還原、附加,只他X的給你個SQL 語法介面,要麻你就執行SQL插入,要麻你就等對方幫你匯入,
不過對方說要排隊,所以乾脆自己些產生資料表資料插入語法,引此找了一些特殊的SQL語法:
1.取得資料庫表單數量
select count(*) as totaltablenumber from sysobjects where xtype = 'U';
2.取得資料表名稱(tablename)及欄位數量(columnnumber)
select name as tablename, info as columnnumber from sysobjects where xtype = 'U';
3.取得某一資料表內所有欄位名稱
select b.name from sysobjects as a, syscolumns as b where a.xtype = 'U' and a.id = b.id and a.name='資料表單名稱';
3.1 取得某一資料表內所有欄位名稱
EXEC sp_columns 表單名稱
4.另外3的話不會照欄位順序排,請加入: order by b.colorder
5.取得資料庫所有資料表名稱
select * from sysobjects where xtype = 'U'
以上為SQL 2000 OK 2005請使用下列語法
6.在SQL SERVER 2005抓取資料庫的SQL語法
select name from master.dbo.sysdatabases
7.抓取資料表的SQL語法
select Table_name from INFORMATION_SCHEMA.TABLES order by Table_name
8.抓取欄位的SQL語法
select column_name from INFORMATION_SCHEMA.COLUMNS where table_name='TableName'
2013年6月4日 星期二
2013年6月3日 星期一
ToolStripDropDownItem 用法
MSDN:ToolStripDropDownItem.DropDownItems Property
參考引用:Creating a Event handle for a DropDownItem in a MenuStrip
--
Private Sub managerToolBar()
Dim food As ToolStripMenuItem = New ToolStripMenuItem
Dim addToolStripItem As ToolStripMenuItem = New ToolStripMenuItem("&add")
AddHandler addToolStripItem.Click, AddressOf Me.addToolStripItem_Click
food.DropDownItems.Add(addToolStripItem)
Me.menuStrip1.Items.Add(food)
End Sub
Private Sub addToolStripItem_Click(ByVal sender As Object, ByVal e As EventArgs)
MessageBox.Show("add")
End Sub
參考引用:Creating a Event handle for a DropDownItem in a MenuStrip
--
Private Sub managerToolBar()
Dim food As ToolStripMenuItem = New ToolStripMenuItem
Dim addToolStripItem As ToolStripMenuItem = New ToolStripMenuItem("&add")
AddHandler addToolStripItem.Click, AddressOf Me.addToolStripItem_Click
food.DropDownItems.Add(addToolStripItem)
Me.menuStrip1.Items.Add(food)
End Sub
Private Sub addToolStripItem_Click(ByVal sender As Object, ByVal e As EventArgs)
MessageBox.Show("add")
End Sub
訂閱:
文章 (Atom)