以文本方式查看主题

-  课外天地 李树青  (http://www.njcie.com/bbs/index.asp)
--  数据库系统原理课件  (http://www.njcie.com/bbs/list.asp?boardid=19)
----  关于数据库T-SQL语句学习的资料  (http://www.njcie.com/bbs/dispbbs.asp?boardid=19&id=163)

--  作者:admin
--  发布时间:2006/4/17 22:29:14
--  关于数据库T-SQL语句学习的资料

1、if语句 显示男生记录 IF (SELECT COUNT(*) FROM stu where sex=1)>0 BEGIN GOTO X END ELSE BEGIN GOTO Y END X: SELECT * FROM stu where sex=1 return Y: SELECT * FROM stu where sex=0

2、while语句 USE students select * into grade_bak from grade select * from grade GO

WHILE (SELECT AVG(grade) FROM grade) < 90 BEGIN UPDATE grade SET grade = grade + 10 SELECT MAX(grade) FROM grade IF (SELECT MAX(grade) FROM grade) > 100 BREAK ELSE CONTINUE END PRINT \'成绩太高\'

select * from grade GO

drop table grade select * into grade from grade_bak drop table grade_bak

3、case语句 USE pubs select type,title,price from titles

SELECT CASE type WHEN \'popular_comp\' THEN \'Popular Computing\' WHEN \'mod_cook\' THEN \'Modern Cooking\' WHEN \'business\' THEN \'Business\' WHEN \'psychology\' THEN \'Psychology\' WHEN \'trad_cook\' THEN \'Traditional Cooking\' ELSE \'Not yet categorized\' END AS Category, CONVERT(varchar(30), title) AS "Shortened Title", price AS Price FROM titles WHERE price IS NOT NULL ORDER BY 1

SELECT (CASE WHEN EXISTS(SELECT * FROM stu WHERE stu.number=\'000009\')THEN MIN(number) ELSE \'000000\' END) as XH FROM stu

更新多列 select * from publishers WHERE country <> \'USA\' OR pub_id = \'9999\' UPDATE publishers SET state = CASE WHEN country <> \'USA\' THEN \'--\' ELSE state END, city = CASE WHEN pub_id = \'9999\' THEN \'LYON\' ELSE city END WHERE country <> \'USA\' OR pub_id = \'9999\' select * from publishers WHERE country <> \'USA\' OR pub_id = \'9999\'

显示男女的汉字性别1 SELECT number,name, CASE WHEN sex =1 THEN \'男\' WHEN sex =0 THEN \'女\' ELSE \'NULL\' END AS "性别" FROM stu

显示男女的汉字性别2 SELECT number,name, CASE sex WHEN 1 THEN \'男\' WHEN 0 THEN \'女\' ELSE \'NULL\' END AS "性别" FROM stu

显示男女的汉字性别3 CREATE FUNCTION sextoCh(@s int) RETURNS nchar(1) --RETURNS char(2) AS BEGIN IF @s=1 RETURN \'男\' RETURN \'女\' END GO

SELECT number,name,students.dbo.sextoCh(sex) from stu GO

DROP FUNCTION sextoCh GO

4、变量 select @@VERSION print @@VERSION

DECLARE @cust VARCHAR(20) SET @CUST=\'FRANK\' SELECT CUSTOMERID,COMPANYNAME FROM CUSTOMERS WHERE CUSTOMERID = @CUST