有例表:emp
emp_no name age
001 Tom 17
002 Sun 14
003 Tom 15
004 Tom 16
要求:
列出所有名字重复的人的记录
(1)最直观的思路:要知道所有名字有重复人资料,首先必须知道哪个名字重复了:
select name from emp group by name having count(*)>1
所有名字重复人的记录是:
select *&nb ......
select 1 from ..., sql语句中的1代表什么意思?查出来是个什么结果?
select 1 from table;与select anycol(目的表集合中的任意一行) from table;与select * from table 从作用上来说是没有差别的,都是查看是否有记录,一般是作条件查询用的。select 1 from 中的1是一常量(可以为任意数值),查到的所有行的值都是它,但从效率上来说,1>anycol>*,因为不用查字典表。
测试场景:(转自网络文献)
table表是一个数据表,假设表的行数为10行。
1:select 1 from table 增加临时列,每行的列值是写在select后的数,这条sql语句中是1
2:select count(1) from table 管count(a)的a值如何变化,得出的值总是table表的行数
3:select sum(1) from table 计算临时列的和
在SQL SERVER中用 1 测试了一下,发现结果如下:
1:测试结果,得出一个行数和table表行数一样的临时列(暂且这么叫,我也不知道该叫什么),每行的列值是1;
2:得出一个数,该数是table表的行数;
3:得出一个数,该数是table表的行数; ......
从不同的角度,我们可以把SQL Server数据平台划分为多个组件。我们下面按照SQL Server Internal Team通常的划分原则,把SQL Server数据平台划分为如下:
SSAS: SQL Server Analysis Service。主要用来做分析用,比如Cube,可以从不同的角度审视数据。
SSIS: SQL Server Integration Service。比如Excel数据和数据库数据的互操作。
SSRS: SQL Server Reporting Service。主要用来做BI,做报表。
Engine: SQL Server Engine。数据库的引擎,非常重要,好比人的心脏一样。
MPU: SQL Server数据库的外围,比如Install,Uninstall,Upgrade,Repair等等。
上述5大组件构成了整个SQL Server数据平台。由于SQL Server Engine 特别重要,我们又可以把它划分为如下的Components:
AM: Access Method。比较底层,主要用来存储数据。
TS: Transaction Service。事务,一切事务数据库的基础。
FS: Filestream。SQL Server 2008的新增功能,主要用来存储>2G的数据到NTFS Driver。
QE: Query Execution。主要负责SQL 语句的执行。
QP: Query Process。主要用来处理用户Issue的SQL语句,比如T-SQL语句的优化,执行计 ......
UPDATe [Sale_Goods] SET [Catalog33_ID] = [Catalog].[ID]
from [Sale_Goods]
LEFT OUTER JOIN [chdy222] ON [Sale_Goods].[Code] = [chdy222].[ID]
LEFT OUTER JOIN [Catalog] ON [chdy222].[ufidaname] = [Catalog].[Name] and [Catalog].[Type]=33
WHERE [Catalog].[ID] IS NOT NULL ......
有这样一个字符串(中,国,中,人民,国,现代工业化进程,国)
处理过之后变成(中,国,人民,现代工业化进程)
以下是我的方法,有什么不对的地方还请各位指点
------------------删除重复的字符
declare
@v1 nvarchar
(100)
declare
@v2 nvarchar
(100)
declare
@v3 nvarchar
(100)
declare
@split nvarchar
(100)
--N',,,,,中,国,中,人民,,,,,国,现代工业化进程,国,,,'
set
@v1=N', ,, ,,中,国,中,人民, ,, , ,国,现代工业化进程,国, ,,'
set
@v3=''
set
@split=','
/*
@v1 :存储临时字符串
@v2 :获取两个分隔符中的字符串
@v3 :存储最后没有重复的字符串
*/
if
left(@v1,1)<>@split
set
@v1=@split+@v1
if
right(@v1,1)<>@split
set
@v1=@v1+@split
while
len(@v1)>len(@split)*2
begin
&nb ......
如何查看SQL Server补丁版本 [http://www.cnblogs.com/yitian/articles/1285021.html]
1、用Isql或者SQL查询分析器登录到SQL Server,如果是用Isql,请在cmd窗口输入isql -U sa,然后输入密码,进入;如果是用SQL查询分析器,请从程序中启动,输入sa和密码(也可以用windows验证)。
2、在ISQL中输入:
Select @@Version;
go
或者SQL查询分析器中输入(其实如果不想输入,只要打开帮助的关于就可以了:))
Select @@Version;
然后按执行;
这时会返回SQL的版本信息,如下:
Microsoft SQL Server 2000 - 8.00.760 (Intel X86) Dec 17 2002 14:22:05 Copyright (c) 1988-2003 Microsoft Corporation Enterprise Edition on Windows NT 5.0 (Build 2195: Service Pack 3)
其中的8.00.760就是SQL Server的版本和补丁号。对应关系如下:
8.00.194 -——————SQL Server&n ......