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什么的,记得不清楚,你根据自己的数据库自己找找吧。