您好,登錄后才能下訂單哦!
本篇文章為大家展示了SQL Server中怎么利用LIKE使用變量類型,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
如下所示:
CREATE TABLE TEST ( ID INT IDENTITY(1,1), NAME VARCHAR(32) ) INSERT INTO dbo.test SELECT 'abc32'; INSERT INTO dbo.test SELECT 'abd32'; INSERT INTO dbo.test SELECT 'abe32' ; DECLARE @name VARCHAR(32); SET @name='ab%'; SELECT * FROM TEST WHERE NAME LIKE @name; DECLARE @name1 CHAR(32); SET @name1='ab%'; SELECT * FROM dbo.TEST WHERE NAME LIKE @name1;
如上截圖所示,當變量使用VARCHAR類型與CHAR類型時,兩者的輸出結果完全不一樣。如果對SQL SERVER數據類型了解不透徹的話,估計真的對這個問題感到相當的困惑。但是對SQL Server數據類型了解比較深入的人來說,這真的是一個簡單到不能再簡單的問題。
如下所示,我們在SQL語句中加入兩句SQL,用DATALENGTH函數返回任何表達式的字節數,你會發現VARCHAR類型的變量返回的字節數為3,但是CHAR類型的變量的字節數為32,其實原因就在于CHAR類型是定長的,也就是當你輸入的字符小于你指定的數目時,例如char(32),你輸入的字符長度小于32時,它會在后面補空值。當你輸入的字符長度大于指定的值時,它會截取超出的字符. 所以下面兩種LIKE的邏輯意義不一樣。LIKE 'ab%' 與 LIKE 'abc% '的邏輯完全不同。
其實你想從側面印證一下也很簡單,如下腳本對比所示,仔細理解一下,也許你就想明白了!
DECLARE @name CHAR(32); SET @name='ab%'; SELECT * FROM TEST WHERE NAME LIKE @name; DECLARE @name1 CHAR(3); SET @name1='ab%'; SELECT * FROM dbo.TEST WHERE NAME LIKE @name1;
上述內容就是SQL Server中怎么利用LIKE使用變量類型,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。