几个SQL Server的查询题!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了几个SQL Server的查询题!相关的知识,希望对你有一定的参考价值。
sql server2000查询分析器中执行的 麻烦速度回答
1.创建一个存储过程,该过程可通过参数输入一个字符串,如果该字符串是由双数个字符构成,则通过输出参数
--输出处于中间位置的两个字符,如果该字符串由单数个字符构成,则通过输出参数输出最中间的字符。
2.创建一个存储过程,该存储过程可获得4个整型参数,并返回4个数中的最大值和最小值
3.创建一个存储过程,可通过该过程输入一个产品类型名称,显示订购了该类型产品的销售记录,其信息包括(客户
--公司名称,负责的雇员姓名,产品名称,订购的数量),并返回该类产品被订购的总价格。
CREATE PROC proc_getMid
@str varchar(100),
@sstr varchar(4) OUTPUT
AS
DECLARE @num smallint,@index smallint
SET @num = len(@str)
IF @num % 2 = 0
BEGIN
SET @index = @num/2
SET @sstr = '"' + substring(@str,@index,2) + '"'
END
ELSE
BEGIN
SET @index = (@num + 1)/2
SET @sstr = '"' + substring(@str,@index,1) + '"'
END
/*
DECLARE @getstr varchar(4)
EXEC proc_getMid 'Just for test', @sstr = @getstr output
print 'The middle is ' + @getstr
*/
2、--DROP PROCEDURE proc_getM
CREATE PROC proc_getM
@a int,@b int, @c int,@d int,@max int OUTPUT,@min int OUTPUT
AS
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'temp')
DROP TABLE temp
CREATE TABLE temp (colum varchar(20))
--SELECT * FROM temp
--DROP TABLE temp
DECLARE @sql1 varchar(50),@sql2 varchar(50),@sql3 varchar(50),@sql4 varchar(50)
SET @sql1 = 'INSERT temp VALUES (' + CONVERT(varchar(20),@a) + ')'
SET @sql2 = 'INSERT temp VALUES (' + CONVERT(varchar(20),@b) + ')'
SET @sql3 = 'INSERT temp VALUES (' + CONVERT(varchar(20),@c) + ')'
SET @sql4 = 'INSERT temp VALUES (' + CONVERT(varchar(20),@d) + ')'
EXEC (@sql1)
EXEC (@sql2)
EXEC (@sql3)
EXEC (@sql4)
ALTER TABLE temp ALTER COLUMN colum int
SELECT @max = max(colum) FROM temp
SELECT @min = min(colum) FROM temp
/*
DECLARE @Max varchar(50),@Min varchar(50)
SET NOCOUNT ON
EXEC proc_getM 121323,333442,523234,1323231,@max = @Max output,@min = @Min output
SET NOCOUNT OFF
PRINT 'The max number is '+ cast(@Max AS varchar(20))
PRINT 'The min number is '+ cast(@Min AS varchar(20))
*/
3、CREATE PROC proc_getInfo
@type varchar(20)
AS
--假设你两个表是[产品信息表]和[销售记录表],且有同一字段[产品名称]
SELECT 客户,公司名称,负责的雇员姓名,a.产品名称,订购的数量,订购的数量*订购价格 AS 被订购的总价格
FROM [产品信息表] a JOIN [销售记录表] b ON a.产品名称 = b.产品名称 WHERE b.产品类型 = @type
EXEC procgetInfo '某某类型'
其中1、2已测,3未测 参考技术A 这个题应该不值50分哟
sqlserver查询一列某几个数据的结果,如果没有值补0。
例如查name这一列下面的name1,name2,name3(没值)补0
select name from table where name in(name1,name2,name3,name4)其中name3没值补0。name4不存在自动补0
以上是关于几个SQL Server的查询题!的主要内容,如果未能解决你的问题,请参考以下文章