① sql表中如何从一个备注字段中把信息查询出来分开显示:
select SUBSTRING(convert(nvarchar(max),[备注]),0,dbo.f_firstposition(convert(nvarchar(max),[备注]),'-',1)) as [学号],
SUBSTRING(convert(nvarchar(max),[备注]),dbo.f_firstposition(convert(nvarchar(max),[备注]),'-',1)+1,dbo.f_firstposition(convert(nvarchar(max),[备注]),'-',2)-dbo.f_firstposition(convert(nvarchar(max),[备注]),'-',1)-1) as [姓名],
SUBSTRING(convert(nvarchar(max),[备注]),dbo.f_firstposition(convert(nvarchar(max),[备注]),'-',2)+1,dbo.f_firstposition(convert(nvarchar(max),[备注]),'-',2)) as [爱好]
from 表名
计算字符位置函数:
create function [dbo].[f_firstposition](@Str varchar(8000),@StrSep varchar(10),@AppPos int)
returns int
begin
declare @i int
declare @ii int
set @Str=rtrim(ltrim(@Str))
set @i=1
select @ii=charindex(@StrSep,@Str)
if @i=@AppPos
return @ii
else
while @AppPos>@i
begin
if charindex(@StrSep,right(@Str,len(@Str)-@ii))<>0
select @ii=charindex(@StrSep,right(@Str,len(@Str)-@ii))+@ii
else
set @ii=0
set @i=@i+1
end
return @iiend
② sql 一个表的一个字段,怎么拆分成几个字段
iphacker大哥,估计你理解了我的意思,其他的回答谢谢了,我的问题的表格发问后乱了,影响了你们的理解
问题如下(根据左表,统计得到右表):
ID---考勤---------------------------ID---早退---迟到---缺勤
1----早退----------------------------1--- 1 -----1-------0
1----迟到--左边的表怎么用查询---2----0------1-------0
2----迟到--或存储过程等得到-----3----2------0-------1
3----早退--右边的查询结果-->
3----早退
3----缺勤
③ SQL如何查询两个表连接明细表结果用分隔符分开
'''
CREATE TABLE T_Students
(
ID varchar(50),
F_Name varchar(50)
)
CREATE TABLE T_Subjects
(
Student_ID varchar(50),
Subject_ID varchar(50),
F_SubjectName varchar(50)
)
insert T_Students values ('01','A')
insert T_Subjects values ('01','1','语文')
insert T_Subjects values ('01','2','数学')
insert T_Students values ('02','B')
insert T_Subjects values ('02','1','语文')
insert T_Subjects values ('02','2','数学')
select a.ID,a.F_Name,stuff((select ','+Subject_ID from T_Subjects
where Student_ID=a.ID for xml path('')),1,1,'') as SubjectID,stuff((select ','+F_SubjectName from T_Subjects
where Student_ID=a.ID for xml path('')),1,1,'') as SubjectName
from T_STudents as a group by ID,F_Name
'''
请点击输入图片描
④ SQL如何进行表的拆分
1.复制表结构及数据到新表
create table 新表 select * from 旧表 where ...
2.只复制表结构到新表
create table 新表 select * from 旧表 where 1=2 (即:让where条件不成立)
3.复制旧表的数据到新表(假设两个表结构一样)
insert into 新表 select * from 旧表
4.复制旧表的数据到新表(假设两个表结构不一样)
insert into 新表(字段1,字段2,.......) select 字段1,字段2,...... from 旧表.
⑤ SQL表中怎么把表字段值拆分成两半呢
select right('00000'+left(col,patindex('%[^0-9]%',col)-1),5)col1,right(col,len(col)-patindex('%[^0-9]%',col)+1)col2 from tb
⑥ 在my sql中怎么将数据表分区
可以看mysql的data文件夹下面的数据库文件,就可以查看当前分区情况。
还有几种获取MySQL分区表信息的常用方法
SHOW CREATE TABLE
可以查看创建分区表的CREATE语句
SHOW TABLE STATUS
可以查看表是否为分区表
查看INFORMATION_SCHEMA.PARTITIONS表
可以查看表具有哪几个分区、分区的方法、分区中数据的记录数等重要信息
⑦ 怎么把SQL中的一个表分成2个表。并且这两个表有自己的名字
select*into学生1from学生表where学院='学院名称1'
select*into学生2from学生表where学院='学院名称2'
⑧ 如何将表从SQL数据库中分离
什么数据库之间都可以导出、导入,使用文本文件作为中间过程,比如你现在的需求,在sql2000里面选择导出数据库,格式可以选择文本格式,然后在access里面导入文本文件。