⑴ sql 字母数字组合 排序
截取分段排序
orderbyleft(kh,charindex('-',kh)-1)
,convert(int,substring(kh,charindex('-',kh)+1,charindex('-',kh,charindex('-',kh)+1)-charindex('-',kh)-1))
,right(kh,len(kh)-charindex('-',kh,charindex('-',kh)+1))
⑵ sql带条件多条数据合并为一条数据并换行
修正现在的表添加一个唯一的标识
先按条件分组,统计两个关键的内容
数量:大于1的时需要删除的
max或min的标识: 用于删除得行标识
delete from 表where id in(
slect id ,count(*) ,max(id) from 表 groupby id
having count(*)>1
)
如果有大于2的重复记录,需要在写循环删除
⑶ SQL 如何把数字或字母按规则进行组合,如:
--测试环境mssql2008
--结果太多截图就只能取部分了
--数字AAB形式组合(72种可能)
;
withT
As
(
selectConvert(varchar(1),number)Tmfrommaster.dbo.spt_values
wheretype='P'
andnumberbetween1and9
)
Selecta.Tm+a.Tm+b.TmfromTa
crossjoinTB
wherea.Tm<>b.Tm
--ABAB形式组合(650种可能)
;
withT
As
(
selectchar(number+64)AsTmfrommaster.dbo.spt_values
wheretype='P'
andnumberbetween1and26
)
Selecta.Tm+b.Tm+a.tm+b.TmfromTa
crossjoinTB
wherea.Tm<>b.Tm
--ABBA形式组合(650种可能)
;
withT
As
(
selectchar(number+64)AsTmfrommaster.dbo.spt_values
wheretype='P'
andnumberbetween1and26
)
Selecta.Tm+b.Tm+b.tm+a.TmfromTa
crossjoinTB
wherea.Tm<>b.Tm
⑷ MSSQL合并数据库语句相同的字段改最后两个字母
select 字段1,字段2,字段3,name from a库.dbo.表1
union all
select 字段1,字段2,字段3,name+'my' from b库.dbo.表1
where name in
(select name from a库.dbo.表1)
union all
select 字段1,字段2,字段3,name from b库.dbo.表1
where name not in
(select name from a库.dbo.表1)
⑸ sql 中 数字与字母混合的数据应该 定义为什么数据类型
sql数据类型如何定义只能为数字和字母的形式,类似于账号密码那些的,一般这个是程序中判断,而不是数据库去判断。
create
table
hehe
(ID
varchar(10)
check
(ID
not
like
'%[^a-z]'
OR
ID
not
like
'%[^0-9]'))
go
⑹ sql 语句问题 把某列的数据全部+1
给你提供个思路,你可以用替换的方法,如果含有字母的,放到一个map中对应,map的key放去掉字母的木粉,map的value放原值,然后给key值加1值,用以替换value中的数字。如果不含字母,直接加1
⑺ sql语句 在某个字段中批量增加一个字母的命令怎么写
本例只改一个xs001,假设该字段名为col1,原值为xs001
update
tabname
set
col1
=
substring(col1,1,2)
+
'h'
+
substring(col1,3,3)
希望对你有帮助
⑻ sql server 字母和数字 符号混合排序问题
select
*
from
tablename
order
by
left(档案号,charindex('-',档案号,charindex('-',档案号)+1)-1),
convert(int,substring(档案号,charindex('-',档案号,charindex('-',档案号)+1)+1,10))
⑼ SQL 按照字母排列
你本来就是字母问题,所以用order
by
name
就行了根据名称排列,其name系统默认就是按字母排列,当然字母也是首先按第一个字母排列
所以:
select
*
from
table
order
by
name;
⑽ sql中表中一列的值,怎么弄成固定字母和数字组合
这个应该跟你的要求类似,你自己看一看~
CREATE FUNCTION 例十一_编号()
RETURNS varchar(7)
BEGIN
DECLARE @编号 varchar(7)
DECLARE @id int
SELECT TOP 1 @编号 = 编号
FROM tb_例十一
ORDER BY 编号 DESC
IF @@ROWCOUNT = 0
SET @编号 = 'TCP-001'
ELSE
BEGIN
SET @id = CAST(SUBSTRING(@编号,5,3) AS int) + 1
SET @编号 = 'TCP-' + REPLICATE('0',3-LEN(@id)) + CAST(@id AS varchar(3))
END
RETURN @编号
END
GO
CREATE TABLE tb_例十一
(
编号 varchar(7) DEFAULT dbo.例十一_编号(),
名称 nvarchar(10)
)
GO
INSERT tb_例十一(名称)
VALUES ('测试一')
INSERT tb_例十一(名称)
VALUES ('测试二')
INSERT tb_例十一(名称)
VALUES ('测试三')
GO
SELECT *
FROM tb_例十一
GO