sqlserver姓,sql怎么查询姓氏

用SqlServer创建一个函数将档案表中的用户姓名只取姓

如果是返回取值的结果:

公司主营业务:成都网站设计、网站制作、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联推出罗田免费做网站回馈大家。

CREATE FUNCTION getname(@s varchar(255))

returns varchar(255)

as

begin

return left(@s,1)

end

如果是返回结果集:

CREATE FUNCTION getname()

returns table

as

return (select left(姓名,1) as 姓 from 表)

SQLServer 查询问题

SELECT fp.Operator_id [工号],e.EMPNAME [姓名],CONVERT(CHAR(13),fp.Create_datetime,121) [期间],COUNT(*) [测试数量]

INTO #t1

FROM

(SELECT * FROM fp

) fp

union -----这里,二个查询字段,数据类型要一样

SELECT fp.Operator_id [工号],e.EMPNAME [姓名],CONVERT(CHAR(13),fp.Create_datetime,121) [期间],COUNT(*) [测试数量]

INTO #t1

FROM

(SELECT * FROM fp 1

) fp

LEFT JOIN ID e ON e.EMPNO = fp.Operator_id

示例:

select a,b from table1

union

select c,d from table2

SQLServer 初级问题

1.用"a"是为了方便你输入,a就是authors,你不用a也可以,但用到authors 的地方你都得输这个字段,感觉麻烦。“authors as a ”的意思就是用 a替代 authors.

2.join 就是进行连接。

jion 语句有三种,inner join, left outer join 和 right outer join 都可以简写,分别为jion,left join,right jion。

jion语句可以用来组合两个表中的记录,只要在公共字段之中有相符的值即可,该语句联合两个表查询得到的结果是可以添加新的数据,可以把它看成将两个具有相关内容的表联接在一起新生成的表,而一般的select 语句没有这个功能。

1) 内连接,inner join ... on

语句格式:

FROM (((表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3 ON 表1.字段号=表3.字段号) INNER JOIN 表4 ON Member.字段号=表4.字段号) INNER JOIN 表X ON Member.字段号=表X.字段号

例子:

SELECT *

FROM (((Member INNER JOIN MemberSort ON Member.MemberSort=MemberSort.MemberSort) INNER JOIN MemberLevel ON Member.MemberLevel=MemberLevel.MemberLevel) INNER JOIN MemberIdentity ON Member.MemberIdentity=MemberIdentity.MemberIdentity) INNER JOIN Wedlock ON Member.Wedlock=Wedlock.Wedlock

ORDER BY MemberDate DESC

内连接的功能是,把两个表相关联的记录列出来,必须是相关联的记录。

2) 左外连接,left outer join ... on

语句格式:

FROM [表名1] LEFT JOIN [表名2]

ON [表名1.字段A] 〈关系运算符〉[表名2.字段B]

其实LEFT JOIN 的功能就是将LEFT左边的表名1中的所有记录全部保留,而将右边的表名2中的字段B与表名1.字段A相对应的记录显示出来(当使用SELECT * 时)。而RIGHT JOIN 和LEFT JOIN 相反。

外连接的功能是,把LEFT左边的表中的所有记录保留,而右边表只保留相关联的记录,也就是先执行一次INNER JOIN,然后把LEFT左边的表中的与右边表没有任何关联的记录也保留,而右边表的字段为null.

3) 右外连接,right outer join ... on

与 left join左右相反。

4) 全连接,full join ... on(不常使用,只能用于outer)

功能结合了以上三种联军,先执行一次inner join,然后把两个表的多余字段都保留,但连接的对应字段为null.

如果想将几个表联接起来,在JOIN操作中我们可以进行嵌套操作,有三个表:表1、表2、表3,现在将三个表联接起来:

FROM (表1 INNER JOIN 表2 ON 表1.序号=表2.序号)

INNER JOIN 表3 ON 表1.序号=表3.序号

SqlServer问题

select

dd.name,

sum(case when cc.type='蔬菜' then total else 0 end) as vegetables_pay,

sum(case when cc.type='水果' then total else 0 end) as fruit_pay

from

(select a.cid,b.type, a.number*b.price as total from info a inner join product b on a.pid=b.pid) cc

left join user dd on cc.cid=dd.cid

group by

dd.name

sqlserver 区分大小写吗

是区分大小写的

在SQLServer中区分大小写的几种方法

今天碰到这个问题了,问了一下朋友,给出了以下几种解决方法,贴出来大家都看一下:

第一种:

ALTER TABLE tb

ALTER COLUMN colname nvarchar(100) COLLATE Chinese_PRC_CI_AS

--不区分大小写

ALTER TABLE tb

ALTER COLUMN colname nvarchar(100) COLLATE Chinese_PRC_CS_AS

--区分大小写

alter database 数据库 COLLATE Chinese_PRC_CS_AS

第二种:

--创建如下用户自定义函数(UDF)

CREATE FUNCTION StrComp(@Str1 VARCHAR(50),@Str2 VARCHAR(50))

--ALTER FUNCTION StrComp(@Str1 VARCHAR(50),@Str2 VARCHAR(50))

RETURNS INTEGER

AS

BEGIN

DECLARE @i INTEGER

--DECLARE @Str1 VARCHAR(50)

--DECLARE @Str2 VARCHAR(50)

DECLARE @y INT

--SET @Str1='a'

--SET @Str2='A'

SET @i=0

--SELECT ASCII(SUBSTRING(@Str1,@i+1,1))

SET @y=1

DECLARE @iLen INT

SET @iLen = LEN(LTRIM(RTRIM(@Str1)))

IF LEN(LTRIM(RTRIM(@Str1))) LEN(LTRIM(RTRIM(@Str2))) --THEN

SET @iLen = LEN(LTRIM(RTRIM(@Str2)))

WHILE (@i @iLen)

BEGIN

IF (ASCII(SUBSTRING(@Str1,@i+1,1))=ASCII(SUBSTRING(@Str2,@i+1,1))) --THEN

SET @i = @i +1

ELSE

BEGIN

SET @y=0

BREAK

END

END

RETURN @y

END

测试:

select *

from Table1

Where dbo.StrComp(Field1,'aAbB') =1

第三种:

SQL Server 数据库中的文本信息可以用大写字母、小写字母或二者的组合进行存储。例如,姓氏可以"SMITH"、"Smith"或"smith"等形式出现。

数据库是否区分大小写取决于 SQL Server 的安装方式。如果数据库区分大小写,当搜索文本数据时,必须用正确的大小写字母组合构造搜索条件。例如,如果搜索名字"Smith",则不能使用搜索条件"=smith"或"=SMITH"。


网站标题:sqlserver姓,sql怎么查询姓氏
转载来源:http://pwwzsj.com/article/dsseghd.html