新聞中心
以下的文章主要向大家描述的是SQL Server 字符串在實(shí)際操作中值得我們大家注意的事項(xiàng)的描述,有一張關(guān)于新聞數(shù)據(jù)表 tb_news,該表有字段 news_id int, news_type int,前者是主鍵,后者是新聞所屬欄目ID,現(xiàn)在要求是這樣:

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:國際域名空間、網(wǎng)絡(luò)空間、營銷軟件、網(wǎng)站建設(shè)、商南網(wǎng)站維護(hù)、網(wǎng)站推廣。
給定一個SQL Server 字符串a(chǎn)_right,該字符串中包含多個新聞欄目ID值,即news_type,并且存儲格式是'b'+news_type+'v',各ID值之間以逗號相隔,
例如:b1v, b2v, b3v……
現(xiàn)在要從新聞表中查詢出所有news_type經(jīng)格式轉(zhuǎn)換為'b'+news_type+'v'后,該格式的新聞欄目被包含在a_right中的新聞,剛
開始寫的查詢語句如下:
- select * from tb_news where charindex('b'+str(news_type)+'v', @a_right) >= 1
結(jié)果執(zhí)行結(jié)果與愿望中的結(jié)果大相徑庭!
經(jīng)過反復(fù)排查,***終于查出原因所在:SQL Server的str()函數(shù)有兩個參數(shù):str(express, length),當(dāng)未指定length時,默認(rèn)
是轉(zhuǎn)為字符串后,SQL Server 字符串左邊保留10個空字符,例如:print 'b'+str(2),則結(jié)果為b 2。因此,需要將轉(zhuǎn)化后的字符串去掉空值,
此時可以使用ltrim()函數(shù),例如執(zhí)行:print 'b'+ltrim(str(2)),結(jié)果為b2。
于是將上面的查詢語句改為:
- select * from tb_news where charindex('b'+ltrim(str(news_type))+'v', @a_right) >= 1
順利執(zhí)行!以上的相關(guān)內(nèi)容就是對SQL Server 字符串操作注意點(diǎn)的介紹,望你能有所收獲。
上述的相關(guān)內(nèi)容就是對SQL Server 字符串操作注意點(diǎn)的描述,希望會給你帶來一些幫助在此方面。
分享名稱:SQLServer字符串在實(shí)際操作中的注意事項(xiàng)
標(biāo)題路徑:http://fisionsoft.com.cn/article/djdeddi.html


咨詢
建站咨詢
