2020年7月22日 星期三

Views

MS SQL Update和其他指令運用

1.Update修改名為M的表格

ABC
A0B06103
A1B12558
A2B26105
A3B33548

目標是撈出C欄位開頭為6且在該欄位前面補上0
update M
  set C='0'+C
where SUBSTRING(c,1,1)='6';

2.Case When運用

IDNameGenderSEX組合
1TristaFnullF
2AmynullFF
3PeterMnullM

目標是新增多一個組合欄位且合併Gender和SEX值
  select * ,組合= case when Gender is not null then Gender 
  else Potter end from M

3.Where 組合欄位運用

IDNameGenderMy=(Name+Gender)
1TristaATristaA
2AmynullAmynull
3PeterMHerryM

目標是要撈出My欄位,且是TristaA
  SELECT ID,My=(Name+Gender) From M
  WHERE (Name+Gender)='TristaA' 
*記得使用Where語句會有順序之分,My欄位是看不到,所所以要使用(Name+Gender)

4.目標要透過join指令去修改值


UPDATE
    tbNew
SET
    tbNew.col1 = PlanB.col1,
tbNew.col2 = PlanB.col2
FROM tbNew
INNER JOIN Plan AS PlanB
ON tbNew.id = PlanB.id
WHERE tbNew.col3 = 'cool'
//表示只有在tbNew是cool的欄位才要修改值
5.目標利用CTE要透過join指令去修改值,移除最後兩個字元
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.id
6.目標利用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

沒有留言:

張貼留言