2016年7月28日 星期四

[SQL] 暫存表 Temporary Tables

最近遇到一些情況

都是可以用到暫存表去解決的

偏偏以前從沒機會使用過(也沒聽過 XD)

感謝同事幫忙  >_<


狀況 1. 搜尋出來的資料量太大,EXCEL沒辦法全部貼上

---> 把資料撈進暫存表 再從暫存表下條件慢慢撈~~

狀況2. 依照EXCEL上的資料順序 去撈取資料, 再把撈到的資料貼到EXCEL上

  ---> 所以先把EXCEL的資料建表 order by 一些欄位 就可以了)

//狀況1
select email
into #tempMail
from member with(nolock)
where ..some conditions

SELECT * FROM #tempMail WHERE email LIKE 'A%' ORDER BY email

//狀況2
//暫存表的建法 是在table名稱前加上 #
create table #tmp_table (return_id nvarchar(30) , pid nvarchar(20))

//建完後insert資料
 insert into #tmp_table(return_id ,pid) values('XXXXXX','YYYY')




[SQL] 依照 in 來排序


// 這裡是用 ,pid, 當作排序依據 charindex(exp1,exp2)會回傳exp1所在的位置,起始值是1 
select pid,name
from temp
where pid in ('p004','p008','p435','p123','p056')
order by charindex(',' + cast(pid as varchar(10) + ',' , ',p004','p008','p435','p123','p056,' ))


//如果排序的對象有空白(不管空白是在字串前或後) 可以用 rtrim() 來Trim掉空白
select rtrim(pid),name
from temp
where pid in ('p004','p008','p435','p123','p056')
order by charindex(',' + rtrim(cast(pid as varchar(10)) + ',' , ',p004','p008','p435','p123','p056,' ))


reference:
rtrim()

charindex()

2016年7月25日 星期一

[Android] 連WebService 拋接資料 心得 [註:沒內容]


這次我想練習 android 去連 WebService 實作拋/接 資料(Json)的部分

首先,我寫了一隻WebService














然後 Android 的CODE 也準備好了....



登!登!登! 因為我是用  VS 的測試開發環境

所以根本連不上Q__Q


所以呢...我就看看別人怎麼寫就...放棄了 ORZ


最近跑去玩XCode了...

玩android弄得我有點心力交瘁

一下子跑出記憶體不足 當機

一下又因為我太菜 Android Studio有些問題要解好久

不然就是卡卡的


難過 傷心

如果有機會 我會再更新這個Tag

(不過為未來大概不會了 心已死)


2016年7月6日 星期三

[SQL] CONCAT() 連結兩個以上的字串


//EX1
SELECT CONCAT(Country , + ',' + City , + ',' + Zip) as address
FROM Table

//Ex2
SELECT Country ',' + City + ',' + Zip as address
FROM Table


CONCAT(string1,string2)

可用來連接2個以上的字串, 參數值可以是字串,數字,空字串或NULL

那和單純的用 + 號串連字串 (Ex2) 有什麼不一樣呢?

不同點在於 如果我串連的字串裡面有欄位是 NUll

那麼Ex2 出來的結果 也會是 NULL ,但Concat 會忽略Null欄位 正常顯示

舉例: Zip 如果為 Null

Ex1 address 會是 英國,倫敦

Ex2 address 會是 NULL