T-SQL小抄

  • 64
  • 0
  • 2017-04-09

T-SQL小抄


LEN(參數) , 傳回字串的長度(但中文算一個字)

餘數
132 % 10 = 2


如果欄位null以某值替換
ISNULL(欄位名稱,如果Null要替換的字)

Ascii(s) : 取 s 的 ASCII Code
Select ASCII('A')
=> 65

Char(x) : ASCII Code x 對應的字元
Select CHAR(65)
=> 'A'

Left(s, n) : 取字串 s 左邊的 n 個字元
Select LEFT('ABCDEFG', 2)
=>'AB'

Len(s) : 計算字串 s 共有幾個字元
Select LEN('ABCDEFG')
=>7
Select LEN('ABCDEFG   ')
=>7
Select LEN('一二三四五六七   ')
=>7

1. Len 會自動將後面的空白去除, 全形空白還是會當作一個字元
2. 中文字當作一個單位

Lower(s) : 將字串s轉換為小寫
Select LOWER('Peter Johnson')
=>'peter johnson'

LTrim(s) : 去除字串 s 左邊的空白
Select LTrim('   ABC')
=>'ABC'

Nchar(x) : Unicode x 的對應字元
Select NCHAR(20013)
=>'中'

Replace(s, a, b) : 將字串 s 中的 a 字串代換為 b字串
Select REPLACE('abcdefg', 'cd', 'xx')
=> 'abcdxxfg'

Replicate(s, n) : 複製 s 字串 n 次
Select REPLICATE('abc', 3)
=> 'abcabcabc'


Reverse(s) : 反轉 s 字串
Select REVERSE('abcd')
=>'dcba'

Right(s, n) : 取字串 s 右邊 n 個字元
Select RIGHT('abcdefg', 2)
=>'fg'

RTrim(s) : 去除字串 s 右邊的空白
Select RTrim('ABC   ')
=>'ABC'


Space(n) : 生成 n 個空白字元
Select SPACE(5)
=> '     '

Substring(s, a, b) : 字串 s 從第 a 個字元開始取 b 個字元
Select SUBSTRING('abcdefg', 3, 2)
=> 'cd'

Unicode(n) : 找出 Unicode n 對應的字元
Select UNICODE('中')
=>20013

Upper(s) : 將字串 s 轉換為大寫
Select UPPER('abcdefg')
=>'ABCDEFG'

--311發佈版的文章 List 改用 self join 呈現

select a.ArticleNo,a.ArticleTitle,a.ArticleText,a.ArticleComm,count(a.ArticleTitle) from Articles as a
join
Articles as b
on a.articleno = b.articlecomm
group by a.ArticleTitle,a.ArticleNo,a.ArticleText,a.ArticleComm

 

--前面補零

Select right(REPLICATE('0',4) + cast(Round(RAND() * 10000, 0) as varchar),4)