SQL Server 字符串在實際操作中的注意事項
以下的文章主要向大家描述的是SQL Server 字符串在實際操作中值得我們大家注意的事項的描述,有一張關于新聞數據表 tb_news,該表有字段 news_id int, news_type int,前者是主鍵,后者是新聞所屬欄目ID,現在要求是這樣:
給定一個SQL Server 字符串a_right,該字符串中包含多個新聞欄目ID值,即news_type,并且存儲格式是'b'+news_type+'v',各ID值之間以逗號相隔,
例如:b1v, b2v, b3v……
現在要從新聞表中查詢出所有news_type經格式轉換為'b'+news_type+'v'后,該格式的新聞欄目被包含在a_right中的新聞,剛
開始寫的查詢語句如下:
- select * from tb_news where charindex('b'+str(news_type)+'v', @a_right) >= 1
結果執行結果與愿望中的結果大相徑庭!
經過反復排查,***終于查出原因所在:SQL Server的str()函數有兩個參數:str(express, length),當未指定length時,默認
是轉為字符串后,SQL Server 字符串左邊保留10個空字符,例如:print 'b'+str(2),則結果為b 2。因此,需要將轉化后的字符串去掉空值,
此時可以使用ltrim()函數,例如執行:print 'b'+ltrim(str(2)),結果為b2。
于是將上面的查詢語句改為:
- select * from tb_news where charindex('b'+ltrim(str(news_type))+'v', @a_right) >= 1
順利執行!以上的相關內容就是對SQL Server 字符串操作注意點的介紹,望你能有所收獲。

上述的相關內容就是對SQL Server 字符串操作注意點的描述,希望會給你帶來一些幫助在此方面。
原文標題:SQL Server 字符串操作注意點
連接:http://www.cnblogs.com/pricks/archive/2010/04/02/1703292.html
【編輯推薦】

















