收藏本站 收藏本站
積木網首頁 - 軟件測試 - 常用手冊 - 站長工具 - 技術社區
首頁 > 數據庫 > mssql2005 > 正文

首頁 - PHP - 數據庫 - 操作系統 - 游戲開發 - JS - Android - MySql - Redis - MongoDB - Win8 - Shell編程 - DOS命令 - jQuery - CSS樣式 - Python - Perl

Access - Oracle - DB2 - SQLServer - MsSql2008 - MsSql2005 - Sqlite - PostgreSQL - node.js - extjs - JavaScript vbs - Powershell - Ruby

在SQL Server 2005所有表中搜索某個指定列的方法

有時候我們只知道列的名字,但是不知道這列數據到底在哪個表里面,那么可以用下面的辦法把含有這列數據的表查找出來。

Select O.name objectName, C.name ColumnName from sys.columns C inner join sys.objects O ON C.object_id=O.object_id where C.name like '%ColumnName%'order by O.name, C.name


在你實際試用中,把ColumnName換成你要查的列的名字就可以了。

字符串在某字段里時,如何寫搜索的SQL語句

問題描述:

經常遇到這種問題,我們搜索的條件是某字符串包含在某字段,如果是某字段包含在某字符串,我們知道可以用in,

如sql="select * form tb where tb.name in(" & names & " )”

注釋:name是表tb的字段,name是獲得的字符串,該句查詢字段name在給的字符串names里的所有集合)

這種方法自然不必多說,但我們通常遇到的問題是“反著來”,即 "name"字符串 在 tb.name表字段里,如,表tb的name字段值為:張三,李四,王五,趙六

而我們要查詢的name=張三,這就要判斷當表的name字段包含查詢條件,也就是有“張三”時,即為符合查詢

解決方法:

1、最先想到的當然是like查詢(并非終極解決方案,終極方法繼續往下看)

如sql="select * form tb where tb.name like '%" & 張三 & "%' ”

解釋一下,這個語句,能查詢到所有表的name字段里有”張三“的集合,可是,假設有人的名字叫”秦張三八“,他的名字不管爹媽怎么取的,總之也有”張三“兩個字,這樣很顯然也符合查詢情況,那么他自然也會被查詢出來,而我們只要”張三“,不要”秦張三八“,看下一步

2、試想一下,如果字段里的值不是“張三,李四,王五,趙六”,而是“,張三,李四,王五,趙六,”

發現什么了?

是的,字符串前后多了個逗號,這就有用了,因為逗號可以作為限制條件,如果“秦張三八”此時也在這個字段里,他的前后也有逗號,這樣按逗號來控制查詢,就精確到位了

好了,改寫查詢成:sql="select * form tb where tb.name like '%," & 張三 & ",%' ”

到此,原理和解決方法就已經全部說完了,但是,你可能還會遇到以下問題,繼續看第三步。

3、有時類似這種帶逗號的字段都是我們在保存的時候勾選了多選check得來的值,這時寫入數據庫的時候,會自動在不同的check值后加上逗號,

比如,請選擇你的興趣愛好,你可能會勾選“看書(value=1)”,“聽歌(value=21)”,“爬山(value=13)”

此時得到的值就是xingquaihao="1, 21, 13",將這個字段保存,在數據庫里也就是這種格式,但是此時如果直接按照上面的查詢方式來查詢的話,

直接用:sql="select * form tb where xingquaihao like '%" & 1 & "%' ” 將得到所有含1的,就算是21、13中的1,也會被查出來

將字段前后加上逗號,變成“,1, 21, 13,”的時候,如果我們查21或者13,改成:sql="select * form tb where xingquaihao like '%," & 21 & ",%' ” 結果是什么都查不出來

為什么明明有值,卻查不出來呢?

因為自動勾選,然后保存的字段中間有空格,比如“1, 21, 13”,1的后面是一個逗號,逗號后面是一個空格,然后才是21

解決方法很簡單了,在勾選完后,入庫前把空格去掉,

xingquaihao="1, 21, 13"

xingquaihao=replace(xingquaihao," ","") '將空格刪除

如此得到的就是緊湊型的值了,再按照上面的方法查詢,搞定!

詳解刪除SQL Server 2005 Compact Edition數據庫
詳解刪除SQLServer2005CompactEdition數據庫本主題將介紹如何刪除MicrosoftSQLServer2005CompactEdition(SQLServerCompactEdition)數據庫。由于SQLServerCompactEdition數據庫是文件

更改SQL Server 2005數據庫中tempdb位置的方法
了解SQLServer2005數據庫的朋友可能都知道,tempdb系統數據庫是一個全局資源,可供連接到SQLServer2005實例的所有用戶使用。我們有時候為了操作方便,常常

SQL Server 2005 Management Studio Express企業管理器將英文變成簡體中文版的實現方法
看到這個文章肯定一點就是你把sql沒有裝到C盤里,呵呵不用怕看下面在安裝的時候要注意:在安裝SQLServer2005Express時候需要將公共組件安裝在C盤然后再

本周排行

更新排行

強悍的草根IT技術社區,這里應該有您想要的! 友情鏈接:b2b電子商務
Copyright © 2010 Gimoo.Net. All Rights Rreserved  京ICP備05050695號
捕鱼大师辅助软件 急速赛车彩票公式 安徽十一选五选走势图一定牛 江西时时彩 骗局 河北11选5一定牛 青海快3开奖结果今天75 极速赛车开奖结果 股票最佳止损点 吉林11选走势图 一定牛 贵州快3投注技巧 速快3登录 长线股票 白小姐四肖必选期期 今日山西快乐10分走势 黑龙江11选五分布走势图 内蒙古11选五任5遗漏 陕西十一选五遗漏手机版