在sql語句中怎么輸出年
求總藏書量、藏書總金額,總庫存冊數、最高價、最低價。
select count(圖書編號) as 總藏書量,
sum(定價) as 藏書總金額,
sum(實際數量) as 總庫存冊數,
max(定價) as 最高價,
min(定價) as 最低價
from 圖書卡片
go
2. 列出藏書在10本以上的書(書名、作者、出版社、年份)。
select 圖書名稱,作者姓名,出版社,出版日期
from 圖書卡片
group by 圖書編號 having(coung(1)>10)
order by 圖書名稱
go
3. 哪些出版社的藏書種類數超過100種。
select 出版社 as '藏書種類數超過100種的出版社'
from 圖書卡片
group by 出版社 having(count(類別)>100)
order by 出版社
go
4. 目前實際已借出多少冊書?
select sum(借出數量) as '借出數量'
from 圖書卡片
go
5. 年份最久遠的書。
select top 1 with ties 圖書名稱 from 圖書卡片
order by 出版日期
go
6. “數據庫系統原理教程,王珊編,清華大學出版社,1998年出版”還有幾本?
select count(1) from 圖書卡片
where concaints(摘要,'"數據庫系統原理教程,王珊編,清華大學出版社,1998年出版"')
go
7. 哪一年的圖書最多?
select top 1 with ties convert(substring(出版日期,1,4)) as 年份,count(1) as '圖書數量'
from 圖書卡片
group by 出版日期
order by 圖書數量 desc
go
8. 哪本借書證未歸還的圖書最多?
select top 1 with ties A.讀者編號,count(1) as '借書數量'
from 圖書卡片 A,借閱 B
where A.圖書編號=B.圖書編號
group by A.讀者編號
order by 借書數量 desc
go
9、平均每本借書證的借書冊數。
select avg(借閱數量) as '平均每本借書證的借書冊數'
from 借閱
go
10.哪個系的同學平均借書冊數最多?
select top 1 with ties A.工作單位,avg(借閱數量) as '平均借閱數量'
from 讀者 A,借閱 B
where A.讀者編號=B.讀者編號
group by A.工作單位
order by 平均借閱數量' desc
go
11. 最近兩年都未被借過的書。
select 圖書名稱
from 圖書卡片
where 圖書編號 in(select 圖書編號 from 借閱 where datediff(year,借閱日期,getdate())>2)
go
12. 列出那些借了圖書逾期未歸還的借書證號和圖書名。
select A.讀者編號 as '借書證號',B.圖書名稱
from 讀者 as A inner join 圖書卡片 as B on A.圖書編號=B.圖書編號
where A.應歸還日期getdate() and A.實際歸還日期 is null
go
13.今年未借過書的借書證。
select 讀者編號
from 讀者
where 讀者編號 not in(select 讀者編號
初學SQL
DECLARE @X INT,@y char ,@z varchar(100)
SET @X=0
set @y='*'
set @z=REPLICATE(@y,@X)
WHILE @X BEGIN
SET @X=@X +1
set @z=REPLICATE(@y,@X)+CHAR(9)
print @z
END
GO
/*
*
**
***
****
******/
你的* 要用乘法 需要使用 REPLICATE()函數
通過sql語句如何輸出字段的描述
如何得到數據庫中所有表字段及字段中文描述
以下資料,通過csdn的一位師兄從SQL版主那得到:
sql中
SELECT
(case when *er=1 then * else '' end) N'表名',
*er N'字段序號',
* N'字段名',
(case when COLUMNPROPERTY( *,*,'IsIdentity')=1 then '√'else '' end) N'標識',
(case when (SELECT count(*)
FROM sysobjects
WHERE (name in
(SELECT name
FROM sysindexes
WHERE (id = *) AND (indid in
(SELECT indid
FROM sysindexkeys
WHERE (id = *) AND (colid in
(SELECT colid
FROM syscolumns
WHERE (id = *) AND (name = *))))))) AND
(xtype = 'PK'))>0 then '√' else '' end) N'主鍵',
* N'類型',
* N'占用字節數',
COLUMNPROPERTY(*,*,'PRECISION') as N'長度',
isnull(COLUMNPROPERTY(*,*,'Scale'),0) as N'小數位數',
(case when *able=1 then '√'else '' end) N'允許空',
isnull(*,'') N'默認值',
isnull(g.[value],'') AS N'字段說明'
--into ##tx
FROM syscolumns a left join systypes b
on *=*ype
inner join sysobjects d
on *=* and *='U' and *'dtproperties'
left join syscomments e
on *lt=*
left join sysproperties g
on *=* AND * = *d
order by object_name(*),*er
一個字,爽,還可以省去做DD時的好多麻煩.
如果不是很明白,可以將以上代碼放到SQL查詢分析器上運行一下就知道了(當然要打開一個數據庫啦)
SQL Server 怎樣使用SQL輸出建表語句
方法/步驟
1
首先找到這個數據庫,右擊-》任務-》生成腳本
2
然后就進入了生成腳本的向導,點擊下一步。
這里會有很多個數據庫,我們選擇自己想要建表的那個數據庫,選擇以后點擊下一步。
這里可以選擇編寫所有腳本,也可以不選直接下一步。
在這里,因為我們只是建表,所以我們把表勾上,不要勾選全部,不然下面就不能繼續了。
這里我們選擇要導出sql語句的表,勾上以后點擊下一步。
在這個界面,我們選擇將腳本保存到文件,然后瀏覽要存放的位置,還能選擇文本的編碼方式,一般默認是Unicode編碼方式。
選擇生成的文件的名字,并選擇保存的路徑。
點擊瀏覽選擇保存后,點擊完成。
在這個界面你什么都不用管,點擊完成就行。
點擊完成后,會看到生成腳本的進度,生成的狀態。
最后我們在保存的路徑下找到這個文件,用記事本打開看看,可以看到這個建表的sql語句。證明我們導出的建表語句是成功的。
動態sql語句如何輸出多個參數
DECLARE @FORM_KIND VARCHAR(50)
DECLARE @FORM_NO VARCHAR(50)
DECLARE @Sql NVARCHAR(1000)
declare @X nvarchar(500)
declare @Y nvarchar(500)
set @form_kind='*.008';
set @form_no=12500;
SET @Sql ='select 1 as num, *_purpose || ''$$'' || *_code || ''$$'' || *_code document_summary from *_tes_flow f,*_tes_ta_head tah where *_head_id=*_id and *_category=''TA''
and *_kind='''+@form_kind+''' and *_no=12500';
print @Sql
SET @Sql = 'SELECT @A=document_summary,@B=num FROM OPENQUERY(ORACLE_ERP, ''' + REPLACE(@Sql, '''', '''''') + ''')'
exec sp_executesql @Sql,N'@A NVARCHAR(500) output,@B NVARCHAR(50) OUTPUT',@X output,@Y OUTPUT
PRINT @X+'============'+@Y