﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-NeedJava-随笔分类-SQL</title><link>http://www.blogjava.net/needjava/category/21489.html</link><description /><language>zh-cn</language><lastBuildDate>Sat, 25 Aug 2007 20:24:49 GMT</lastBuildDate><pubDate>Sat, 25 Aug 2007 20:24:49 GMT</pubDate><ttl>60</ttl><item><title>〔SQL〕根据值查找表和字段（转载）</title><link>http://www.blogjava.net/needjava/archive/2007/08/24/69814.html</link><dc:creator>NeedJava</dc:creator><author>NeedJava</author><pubDate>Thu, 23 Aug 2007 21:21:00 GMT</pubDate><guid>http://www.blogjava.net/needjava/archive/2007/08/24/69814.html</guid><wfw:comment>http://www.blogjava.net/needjava/comments/69814.html</wfw:comment><comments>http://www.blogjava.net/needjava/archive/2007/08/24/69814.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/needjava/comments/commentRss/69814.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/needjava/services/trackbacks/69814.html</trackback:ping><description><![CDATA[
		<p>
				<font face="Courier New" color="#808080" size="2">-- 我知道一个值“White”，想知道它在哪个表里的哪个字段 </font>
		</p>
		<p>
				<br />
				<font face="Courier New" color="#808080" size="2">-- 使用Northwind测试<br />USE Northwind<br />GO </font>
		</p>
		<p>
				<font face="Courier New" color="#808080" size="2">DECLARE @what varchar(800)<br />SET @what='White'  --要搜索的字符串 </font>
		</p>
		<p>
				<font face="Courier New" color="#808080" size="2">DECLARE @sql varchar(8000) </font>
		</p>
		<p>
				<font face="Courier New" color="#808080" size="2">DECLARE TableCursor CURSOR LOCAL FOR<br />SELECT sql='IF EXISTS ( SELECT 1 FROM ['+o.name+'] WHERE ['+c.name+'] LIKE </font>
				<a href="mailto:''%'+@what+'%''">
						<font face="Courier New" color="#808080" size="2">''%'+@what+'%'' </font>
				</a>
				<font face="Courier New" color="#808080" size="2">) PRINT ''所在的表及字段：['+o.name+'].['+c.name+']'''<br />FROM syscolumns c JOIN sysobjects o ON c.id=o.id <br />WHERE o.xtype='U' AND c.status&gt;=0 AND c.xusertype IN (175, 239, 231, 167 ) </font>
		</p>
		<p>
				<font face="Courier New" color="#808080" size="2">OPEN TableCursor </font>
		</p>
		<p>
				<font face="Courier New" color="#808080" size="2">FETCH NEXT FROM TableCursor INTO @sql<br />WHILE @@FETCH_STATUS=0<br />  BEGIN<br />    EXEC( @sql )<br />    FETCH NEXT FROM TableCursor INTO @sql<br />  END </font>
		</p>
		<p>
				<font face="Courier New" color="#808080" size="2">CLOSE TableCursor </font>
		</p>
		<p>
				<font face="Courier New" color="#808080" size="2">-- 删除游标引用<br />DEALLOCATE TableCursor </font>
		</p>
		<p>
				<font face="Courier New" color="#808080" size="2">
				</font> </p>
		<p>
				<font face="Courier New" color="#808080" size="2">-- 测试结果<br />所在的表及字段：[Orders].[ShipName]<br />所在的表及字段：[Customers].[CompanyName] </font>
		</p>
		<p>
				<font face="Courier New" color="#808080" size="2">
				</font> </p>
<img src ="http://www.blogjava.net/needjava/aggbug/69814.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/needjava/" target="_blank">NeedJava</a> 2007-08-24 05:21 <a href="http://www.blogjava.net/needjava/archive/2007/08/24/69814.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>〔SQL〕要查询Begin与End字段都相同的记录，出现次数在n次以上的结果集（改写）</title><link>http://www.blogjava.net/needjava/archive/2007/08/24/69812.html</link><dc:creator>NeedJava</dc:creator><author>NeedJava</author><pubDate>Thu, 23 Aug 2007 21:20:00 GMT</pubDate><guid>http://www.blogjava.net/needjava/archive/2007/08/24/69812.html</guid><wfw:comment>http://www.blogjava.net/needjava/comments/69812.html</wfw:comment><comments>http://www.blogjava.net/needjava/archive/2007/08/24/69812.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/needjava/comments/commentRss/69812.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/needjava/services/trackbacks/69812.html</trackback:ping><description><![CDATA[
		<font face="Courier New" color="#808080" size="2">要查询Begin与End字段都相同的记录，出现次数在n次以上的结果集<br /><br />有一个数据库表，结构为：（3个字段）<br />Begin 从 字符型<br />End 到 字符型<br />Time 时间 时间型<br /><br />数据：<br />Begin End Time<br />111 222 2002-10-10<br />111 333 2002-10-11<br />111 444 2002-10-12<br />111 222 2002-10-13<br />111 222 2002-10-14<br />111 333 2002-10-15<br />222 111 2002-10-16<br />222 333 2002-10-17<br />222 555 2002-10-18<br />444 222 2002-10-19<br />444 222 2002-10-20<br />666 222 2002-10-21<br /><br />要查询Begin与End字段都相同的记录，出现次数在n次以上的结果集<br /><br />n=2结果集为：<br />Begin End Time<br />111 222 2002-10-10<br />111 333 2002-10-11<br />111 222 2002-10-13<br />111 222 2002-10-14<br />111 333 2002-10-15<br />444 222 2002-10-19<br />444 222 2002-10-20<br /><br />n=3结果集为：<br />Begin End Time<br />111 222 2002-10-10<br />111 222 2002-10-13<br />111 222 2002-10-14<br /><br />不知这种情况的SQL语句如何写？<br />---------------------------------------------------------------<br />USE Northwind<br />GO<br /><br />IF EXISTS( SELECT * FROM dbo.sysobjects WHERE id=object_id( N'[Flight]' ) AND OBJECTPROPERTY( id, N'IsUserTable' )=1 )<br />DROP TABLE [Flight]<br />GO<br /><br />CREATE TABLE [Flight]<br />(<br />  [Begin] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL,<br />  [End] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL,<br />  [Time] [datetime] NULL <br />) ON [PRIMARY]<br />GO<br /><br />INSERT INTO [Flight]( [Begin], [End], [Time] ) VALUES( '111', '222', '2002-10-10' )<br />INSERT INTO [Flight]( [Begin], [End], [Time] ) VALUES( '111', '333', '2002-10-11' )<br />INSERT INTO [Flight]( [Begin], [End], [Time] ) VALUES( '111', '444', '2002-10-12' )<br />INSERT INTO [Flight]( [Begin], [End], [Time] ) VALUES( '111', '222', '2002-10-13' )<br />INSERT INTO [Flight]( [Begin], [End], [Time] ) VALUES( '111', '222', '2002-10-14' )<br />INSERT INTO [Flight]( [Begin], [End], [Time] ) VALUES( '111', '333', '2002-10-15' )<br />INSERT INTO [Flight]( [Begin], [End], [Time] ) VALUES( '222', '111', '2002-10-16' )<br />INSERT INTO [Flight]( [Begin], [End], [Time] ) VALUES( '222', '333', '2002-10-17' )<br />INSERT INTO [Flight]( [Begin], [End], [Time] ) VALUES( '222', '555', '2002-10-18' )<br />INSERT INTO [Flight]( [Begin], [End], [Time] ) VALUES( '444', '222', '2002-10-19' )<br />INSERT INTO [Flight]( [Begin], [End], [Time] ) VALUES( '444', '222', '2002-10-20' )<br />INSERT INTO [Flight]( [Begin], [End], [Time] ) VALUES( '666', '222', '2002-10-21' )<br />GO<br /><br />SELECT * FROM [Flight]<br />GO<br /><br /><br />-- 方法一<br /><br />DECLARE @n int  -- 出现次数<br />SET @n=2<br /><br />SELECT *<br />FROM [Flight] T1<br />WHERE ( SELECT COUNT(*)<br />        FROM [Flight] T2<br />        WHERE T2.[Begin]=T1.[Begin] AND T2.[End]=T1.[End] )&gt;=@n<br />ORDER BY T1.[Begin], T1.[End], T1.[Time]<br /><br /><br /><br />-- 方法二<br /><br />DECLARE @n int  -- 出现次数<br />SET @n=2<br /><br />SELECT *<br />FROM [Flight] T1<br />WHERE EXISTS ( SELECT 1<br />               FROM ( SELECT [Begin], [End]<br />                      FROM [Flight]<br />                      GROUP BY [Begin], [End]<br />                      HAVING COUNT(*)&gt;=@n ) T2<br />               WHERE T2.[Begin]=T1.[Begin] AND T2.[End]=T1.[End] )<br />ORDER BY T1.[Begin], T1.[End], T1.[Time] </font>
<img src ="http://www.blogjava.net/needjava/aggbug/69812.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/needjava/" target="_blank">NeedJava</a> 2007-08-24 05:20 <a href="http://www.blogjava.net/needjava/archive/2007/08/24/69812.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>〔SQL〕MS SQL Server 2000 SP4 提取〖查询分析器〗</title><link>http://www.blogjava.net/needjava/archive/2007/07/03/127717.html</link><dc:creator>NeedJava</dc:creator><author>NeedJava</author><pubDate>Mon, 02 Jul 2007 18:55:00 GMT</pubDate><guid>http://www.blogjava.net/needjava/archive/2007/07/03/127717.html</guid><wfw:comment>http://www.blogjava.net/needjava/comments/127717.html</wfw:comment><comments>http://www.blogjava.net/needjava/archive/2007/07/03/127717.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/needjava/comments/commentRss/127717.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/needjava/services/trackbacks/127717.html</trackback:ping><description><![CDATA[
		<p style="FONT-FAMILY: Courier New">
				<font color="#808080" size="2">想在只有MSDE的机器上使用〖查询分析器〗或〖事件探查器〗？<br /><br />分离以下文件出来即可放在U盘带走，打上SP4补丁先。<br /><br />〖查询分析器〗包含以下组件：<br />[SQLQueryAnalyzer]<br />howtosql.chi<br />howtosql.chm<br />isqlw.exe<br />isqlw.rll<br />objmgr.dll<br />objmgr.rll<br />objmgr80.xml<br />pfclnt80.dll<br />pfclnt80.rll<br />pfutil80.dll*<br />pfutil80.rll*<br />semsfc.dll*<br />semsfc.rll*<br />sqlgui.dll*<br />sqlgui.rll*<br />sqlqry.dll<br />sqlqry.rll<br />sqlsvc.dll<br />sqlsvc.rll</font>
		</p>
		<p style="FONT-FAMILY: Courier New">
				<br />
				<font color="#808080" size="2">〖事件探查器〗包含以下组件：<br />[SQLProfiler]<br />profiler.chi<br />profiler.chm<br />msvcr71.dll<br />pfutil80.dll*<br />pfutil80.rll*<br />profiler.exe<br />profiler.rll<br />semsfc.dll*<br />semsfc.rll*<br />sqlgui.dll*<br />sqlgui.rll*</font>
		</p>
		<p style="FONT-FAMILY: Courier New">
				<br />
				<font color="#808080" size="2">其中，有星号的表示共有的；有括号的表示包括文件夹里的内容；另外，选择2052文件夹里的文件，那是中文的。</font>
		</p>
<img src ="http://www.blogjava.net/needjava/aggbug/127717.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/needjava/" target="_blank">NeedJava</a> 2007-07-03 02:55 <a href="http://www.blogjava.net/needjava/archive/2007/07/03/127717.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>