1. sql中文標點會自動多個橫杠怎麼才能取消
修改一下字體即可
工具->選項->環境->字體和顏色。我用的是Courier NEW
2. sql如何按日期中的月份查詢
sql按日期中的月份查詢如下:
SQL Server
select * from [data] where DATEPART(m,[date])=2
Access
select * from [data] where DATEPART('m',[date])=2
說明:
DATEPART(datepart,date)
返回表示指定日期的指定部分的整數
datepart 要取得的日期部分
- m 表示月份,d表示日,yyyy表示年
date 日期表達式
舉例:
--以2013-12-10 12:56:55為例
--convert(nvarchar(10),CreateDate,120) => 2013-12-10
--DATEPART(month,CreateDate) => 12
--DATEPART(year,CreateDate) => 2013
--月
select datepart(MONTH,'2013-06-08')
select datepart(mm,'2013-06-08')
select datepart(m,'2013-06-08')
(2)sql查詢橫杠擴展閱讀:
相關函數
SQL Aggregate 函數
SQL Aggregate 函數計算從列中取得的值,返回一個單一的值。
有用的 Aggregate 函數:
AVG() - 返回平均值
COUNT() - 返回行數
FIRST() - 返回第一個記錄的值
LAST() - 返回最後一個記錄的值
MAX() - 返回最大值
MIN() - 返回最小值
SUM() - 返回總和
SQL Scalar 函數
SQL Scalar 函數基於輸入值,返回一個單一的值。
有用的 Scalar 函數:
UCASE() - 將某個欄位轉換為大寫
LCASE() - 將某個欄位轉換為小寫
MID() - 從某個文本欄位提取字元
LEN() - 返回某個文本欄位的長度
ROUND() - 對某個數值欄位進行指定小數位數的四捨五入
NOW() - 返回當前的系統日期和時間
3. sql查詢橫排
靜態的,假設統計類別就只有:伙食費、培訓費兩種
select 姓名,
max(case 統計類別 when '培訓費' then moneys else 0 end) 培訓費,
max(case 統計類別 when '伙食費' then moneys else 0 end) 伙食費
from
(
select 姓名,sum(金額) moneys, 統計類別
from 表1
group by 姓名,統計類別
) tb
group by 姓名
----
動態的,統計類別不固定
declare @sql varchar(8000)
set @sql = 'select 姓名'
select @sql = @sql + ' , max(case 統計類別 when ''' + 統計類別 + ''' then moneys else 0 end) [' + 統計類別 + ']' from (select distinct 統計類別 from 表1) as a
set @sql = @sql + ' from (select 姓名,sum(金額) moneys, 統計類別 from 表1 group by 姓名,統計類別) group by 姓名'
exec(@sql)
4. sql橫向查詢
你確定?????
是想這樣吧?
select name
,max(case when kemu='yuwen' then score else 0 end) as yuwen
, max(case when kemu='shuxue' then score esle 0 end) as shuxue
, max(case when kemu='yingyu' then score esle 0 end) as yingyu
。。。
from table_name
group by name
如果不是想這樣可以再找我
不過我今天沒空理你了,最快也到明天了 呵呵
5. SQL怎麼實現查詢出的結果橫排顯示
因記錄數不定,記錄改成欄位數量就不定,沒有確定欄位數,無法作查詢。因為查詢語句必須要欄位列表的。
所以,你的問題不如這樣實現,欄位名就不要重復了,欄位內容橫過來就行了。
這樣:
DECLARE @CD VARCHAR(8000)
SET @CD=''
SELECT @CD=' '+C+' '+D FROM 表A
select C_D=@CD
結果是這樣
C_D
1 2 3 4 5 6
6. sql語句查詢橫排成績表中成績最好的學生姓名、科目和成績
/*
讓我們假設 這個表叫ExamResults.
name - 姓名
subjects - 科目
grades - 成績
*/
--then the query is as following.
select
er1.name, er1.subjects, er1.grades
from ExamResults as er1, ExamResults as er2
where er1.name = er2.name and er1.grades > er2.grades
7. SQL如何將查詢結果橫排顯示
這只是一個合並語句就搞定了。
select floor,group_contact(roomid,"##") as roomid from tablename group by floor;
用二個##分隔如得到的結果是 1000##1001
如果直接用group_contact(roomid)則是以,號分隔 如1000,1001
輸出時用字元串工具處理下就可以了。
8. sql聯合查詢資料庫橫線顯示累加
不知道你是什麼資料庫,看到看窗函數大概是oracle吧,其實只要置0就可以了,oracle的話用nvl就行,就是在你的b1查詢的時候,在sum的外邊加一層nvl函數nvl(sum(***),0)這樣的話後面就不是null而是0了,就可以和1相加了。
如果不想這么做,那麼直接在最後加也可以,就是在最後相加的時候,在d_amount的外面加一層,nvl函數,這樣就可以了。比如d_count+nvl(d_mount,0)就可以了。
如果是其他資料庫,那麼也有相應的函數,我記得有nullif什麼的,記得不清楚,你根據自己的資料庫自己找找吧。