⑴ 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