1.參考備份三種方式
2021年8月22日 星期日
2021年8月17日 星期二
Views
資料格式轉換
1. varchar to float
--Num 欄位原資料是varchar格式 SELECT CAST(Num AS FLOAT) as FloatValue FROM Area
2020年7月22日 星期三
Views
MS SQL Update和其他指令運用
1.Update修改名為M的表格
| A | B | C |
|---|---|---|
| A0 | B0 | 6103 |
| A1 | B1 | 2558 |
| A2 | B2 | 6105 |
| A3 | B3 | 3548 |
目標是撈出C欄位開頭為6且在該欄位前面補上0
update M
set C='0'+C
where SUBSTRING(c,1,1)='6';
2.Case When運用
| ID | Name | Gender | SEX | 組合 |
|---|---|---|---|---|
| 1 | Trista | F | null | F |
| 2 | Amy | null | F | F |
| 3 | Peter | M | null | M |
目標是新增多一個組合欄位且合併Gender和SEX值
select * ,組合= case when Gender is not null then Gender else Potter end from M
3.Where 組合欄位運用
| ID | Name | Gender | My=(Name+Gender) |
|---|---|---|---|
| 1 | Trista | A | TristaA |
| 2 | Amy | null | Amynull |
| 3 | Peter | M | HerryM |
目標是要撈出My欄位,且是TristaA
*記得使用Where語句會有順序之分,My欄位是看不到,所所以要使用(Name+Gender) SELECT ID,My=(Name+Gender) From M
WHERE (Name+Gender)='TristaA'
4.目標要透過join指令去修改值
UPDATE tbNew SET tbNew.col1 = PlanB.col1,5.目標利用CTE要透過join指令去修改值,移除最後兩個字元
tbNew.col2 = PlanB.col2
FROM tbNew
INNER JOIN Plan AS PlanB
ON tbNew.id = PlanB.id
WHERE tbNew.col3 = 'cool' //表示只有在tbNew是cool的欄位才要修改值
UPDATE Brand SET name = v.name FROM Brand inner join ( --類似自我JOIN改資料 SELECT id, LEFT(name, Len(name)-2) as Name from Brand -- 這個地方是利用CTE方式 ) v ON Brand.Id = v.id6.目標利用CTE要透過join指令去修改值,將值前後去掉空白,改成大或小寫
UPDATE Brand SET name=v.name FROM Brand inner join --大寫 --小寫 (select id, TRIM(Upper(NAME)) as name1,TRIM(Lower(NAME))as name2 from Brand) v on Brand.Id = v.id
2020年7月13日 星期一
Views
SQL Server資料匯入匯出
1.先在資料庫建立資料表
2.
3.參考資料1(英文).
參考資料2(中文).
4.資料匯出到不同目的端
2.
BULK INSERT test --test是在資料庫的表格名稱
FROM 'd:\test.csv' --資料實際路徑
WITH (FIRSTROW = 1, --從第一列開始
FIELDTERMINATOR = ',', --CSV分隔符號常為,,預設為\t(定位字元)
ROWTERMINATOR='\n' --資料檔案的資料列結束字元。 預設的資料列結束字元是 \r\n (新行字元)
);
3.參考資料1(英文).
參考資料2(中文).
4.資料匯出到不同目的端
2020年5月20日 星期三
Views
Excel 匯入到Sql Server的方法
1.利用SqlServer內部直接匯入
https://dotblogs.com.tw/shadow/2014/03/19/144441
2.Bulk Insert 方式
https://dotblogs.com.tw/shadow/2014/03/19/144441
2.Bulk Insert 方式
BULK INSERT Mytest
FROM 'C:\Demo\test.txt'
WITH
(
FIELDTERMINATOR = '\t', --這是預設欄位結束字元
ROWTERMINATOR = '\n' --這是預設資料列結束字元
)
2020年5月6日 星期三
Views
當sql 語法為 select * from test2
where charindex('2',password)>0
此時模糊比對的資料就是
*****大小寫沒影響。
MS SQL指令整理
1.charindex(指令字元,目標欄位)
例如:| id | name | password |
|---|---|---|
| 1 | Amy | A001 |
| 2 | Peter | A002 |
| 3 | Happy | B001 |
| 4 | Merry | B002 |
當sql 語法為 select * from test2
where charindex('2',password)>0
此時模糊比對的資料就是
| id | name | password |
|---|---|---|
| 2 | Peter | A002 |
| 4 | Merry | B002 |
*****大小寫沒影響。
2.用charindex(想要比對的欄位,目標欄位),來執行字串比對並創新欄位
資料表是test
| id | 比對地址 | 地址 | 比對後欲創造新欄位 |
|---|---|---|---|
| 1 | 台中市 | 台中市龍興路10號 | 1 |
| 2 | 台北縣 | (102)台北縣大路里100號 | 1 |
| 3 | 桃園縣 | (102)台北縣大路里100號 | 0 |
| 4 | 台南市 | (102)台北縣大路里100號 | 0 |
select *,比對後欲創造新欄位=case when charindex([比對地址],[地址])>0 then 1 else 0 end from test
3.移除欄位最後字元可用REPLACE,加上轉型Convert
| id | kg |
|---|---|
| 1 | 100公斤 |
| 4 | 100公斤/人 |
select convert(float,replace(replace(Gender,'公噸/月',''),'公噸','')) as kg from table
訂閱:
文章 (Atom)