T-SQL筆記29_兩個字串變數比較透過varbinary_大小寫也要一致的比對方式

 


可能一般直接就用字串原始值去比對了

1
2
3
4
5
6
7
8
9
DECLARE @Name1 VARCHAR(30), @Name2 VARCHAR(20);
Set @Name1='geeks';
Set @Name2='geeks';
If @Name1=@Name2 Select 'match' else Select 'not match';

DECLARE @Name3 VARCHAR(30), @Name4 VARCHAR(20);
Set @Name3='geeks';
Set @Name4='geeksA';
If @Name3=@Name4 Select 'match' else Select 'not match';



不過會有個問題假設今天要做區分大小寫的比對會出錯



這時可以透過convert成varbinary來做比對就能強迫case sensitive

1
2
3
4
5
6
7
8
DECLARE @Name1 VARCHAR(30), @Name2 VARCHAR(30);
Set @Name1='SQL';
Set @Name2='sql';

--select convert(varbinary(30),@Name1)
--select convert(varbinary(30),@Name2)

If convert(varbinary(30),@Name1)=convert(varbinary(30),@Name2) Select 'match' else Select 'not match';









Ref:
SQL Query to Compare Two Strings

TSQL function to compare two strings

SQL Case Sensitive String Compare

Case Sensitive String Comparison

留言

這個網誌中的熱門文章

何謂淨重(Net Weight)、皮重(Tare Weight)與毛重(Gross Weight)

Architecture(架構) 和 Framework(框架) 有何不同?_軟體設計前的事前規劃的藍圖概念

經得起原始碼資安弱點掃描的程式設計習慣培養(五)_Missing HSTS Header