當前位置:首頁 » 編程語言 » sql生成助記碼
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql生成助記碼

發布時間: 2022-05-20 14:45:07

Ⅰ 如何將資料庫中某列值 轉換成拼音助記碼

sql">--不曉得你用的是什麼資料庫,下面是MSSQL里的一個解決方案:

ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[f_GetPy]')andxtypein(N'FN',N'IF',N'TF'))
dropfunction[dbo].[f_GetPy]
GO


--創建取拼音函數:取每個字元串里,每個字元的拼音首字母
createfunctionf_GetPy(@Strnvarchar(400))
returnsnvarchar(4000)
as
begin
declare@strlenint,@renvarchar(4000)
declare@ttable(chrnchar(1)collateChinese_PRC_CI_AS,letternchar(1))
insert@tselect'吖','A'unionallselect'八','B'
unionallselect'嚓','C'unionallselect'咑','D'
unionallselect'妸','E'unionallselect'發','F'
unionallselect'旮','G'unionallselect'鉿','H'
unionallselect'丌','J'unionallselect'咔','K'
unionallselect'垃','L'unionallselect'嘸','M'
unionallselect'拏','N'unionallselect'噢','O'
unionallselect'妑','P'unionallselect'七','Q'
unionallselect'呥','R'unionallselect'仨','S'
unionallselect'他','T'unionallselect'屲','W'
unionallselect'夕','X'unionallselect'丫','Y'
unionallselect'帀','Z'
select@strlen=len(@str),@re=''
while@strlen>0
begin
selecttop1@re=letter+@re,@strlen=@strlen-1
from@tawherechr<=substring(@str,@strlen,1)
orderbychrdesc
if@@rowcount=0
select@re=substring(@str,@strlen,1)+@re,@strlen=@strlen-1
end
return(@re)
end
go--測試
selectdbo.f_GetPy('廣東省')as廣東省,dbo.f_GetPy('ab中c國人')as中國人
廣東省中國人
-----------
GDSabZcGR


selectdbo.f_GetPy('以後查詢時,可調用上面函數來實現漢字模糊查詢')
--查詢結果:YHCXS,KDYSMHSLSXHZMHCX

Ⅱ 寫PL/sql語句

update a set a.zjm='o'||a.zjm

Ⅲ sql 查詢語句自動增加序號

.使用臨時表實現
SQL的IDENTITY函數可以提供自增的序號,但只能用在帶有INTO table子句的SELECT語句中,所以如果可以使用臨時表的情況下可以使用這種實現方法。
eg:
SELECT IDENTITY(INT,1,1) as seq,field1,field2,...,fieldn INTO tmpTableName FROM srcTableName;
SELECT * FROM tmpTableName;
DROP TABLE tmpTableName;

Ⅳ SQL怎樣自動生成編號格式如:GG+YYYYMMDD+4位流水編號

我的項目里也用到這種模式
但有點不好,靈活性太差,邏輯判斷都放在程序里,我剛寫的改進下。

CREATE PROC CreateMaxNum
(
@NumberHeader NVARCHAR(40) --號碼單頭類型
)
DECLARE @NumberHeader NVARCHAR(40), --編號頭
@NumberMiddle CHAR(8), --編號中間規則
@MaxNum CHAR(8), --編號最大流水號
@SQL NVARCHAR(4000)
SET @NumberMiddle= CONVERT(CHAR(8),GETDATE(),112) --設置中間編碼規則
SET @SQL = 'SELECT @Num=RIGHT(''0000''+LTRIM(MAX(RIGHT(號碼,4))+1),4)
FROM 號碼表
WHERE 號碼 LIKE '''+ @NumberHeader+'%'' ';
EXEC sp_executesql @Sql,N'@Num NVARCHAR(40) OUTPUT',@MaxNum OUT
IF @MaxNum IS NULL --不存在該類型的號碼,插入流水號為1的號碼,
BEGIN
SELECT @NumberHeader + @NumberMiddle + '0001'
END
ELSE
BEGIN --生成最大流水號
SELECT @NumberHeader + @NumberMiddle + @MaxNum
END

Ⅳ sql 能不能根據漢字生成助記碼

可以的,很多現成的函數,

Createfunctionfn_GetPy(@strnvarchar(4000))
returnsnvarchar(4000)
as
begin
declare@intLenint
declare@strRetnvarchar(4000)
declare@tempnvarchar(100)
set@intLen=len(@str)
set@strRet=''
while@intLen>0
begin
set@temp=''
select@temp=case
whensubstring(@str,@intLen,1)>='帀'then'Z'
whensubstring(@str,@intLen,1)>='丫'then'Y'
whensubstring(@str,@intLen,1)>='夕'then'X'
whensubstring(@str,@intLen,1)>='屲'then'W'
whensubstring(@str,@intLen,1)>='他'then'T'
whensubstring(@str,@intLen,1)>='仨'then'S'
whensubstring(@str,@intLen,1)>='呥'then'R'
whensubstring(@str,@intLen,1)>='七'then'Q'
whensubstring(@str,@intLen,1)>='妑'then'P'
whensubstring(@str,@intLen,1)>='噢'then'O'
whensubstring(@str,@intLen,1)>='拏'then'N'
whensubstring(@str,@intLen,1)>='嘸'then'M'
whensubstring(@str,@intLen,1)>='垃'then'L'
whensubstring(@str,@intLen,1)>='咔'then'K'
whensubstring(@str,@intLen,1)>='丌'then'J'
whensubstring(@str,@intLen,1)>='鉿'then'H'
whensubstring(@str,@intLen,1)>='旮'then'G'
whensubstring(@str,@intLen,1)>='發'then'F'
whensubstring(@str,@intLen,1)>='妸'then'E'
whensubstring(@str,@intLen,1)>='咑'then'D'
whensubstring(@str,@intLen,1)>='嚓'then'C'
whensubstring(@str,@intLen,1)>='八'then'B'
whensubstring(@str,@intLen,1)>='吖'then'A'
elsertrim(ltrim(substring(@str,@intLen,1)))
end
if(ascii(@temp)>127)set@temp=''
if@temp='('or@temp=')'set@temp=''
select@strRet=@temp+@strRet
set@intLen=@intLen-1
end
returnlower(@strRet)
end

Ⅵ SQL資料庫列自動生成編號

兩種方法:

1、用Truncate

TRUNCATETABLEname可以刪除表內所有值並重置標識值

2、用DBCC CHECKIDENT

DBCCCHECKIDENT('table_name',RESEED,new_reseed_value)如dbcc checkident ("bc_pos",reseed,1)即可,

但如果表內有數據,則重設的值如果小於最大值可能會有問題,這時可以用 dbcc checkident("bc_pos",reseed)即可自動重設值。

注意:

只能為不允許空值且數據類型為 decimal、int、numeric、smallint、bigint 或 tinyint 的列設置標識屬性。此外,不能為主鍵列設置標識屬性。

(6)sql生成助記碼擴展閱讀:

關於上述標識列的引用

如果在SQL語句中引用標識列,可用關鍵字IDENTITYCOL代替,例如,若要查詢上例中ID等於1的行,

以下兩條查詢語句是等價的:

1、SELECT * FROM T_test WHERE IDENTITYCOL=1

2、SELECT * FROM T_test WHERE

Ⅶ SQL2000 語句查詢

--如果整個欄位都是漢字,則可以使用以下語句,判斷欄位首位是否為漢字:

SELECT * FROM 表名 WHERE ascii(助記碼)>127

--若不是整個欄位都是漢字,則可以使用以下語句,判斷欄位中是否包含漢字:

select * from 表名 where 助記碼 like '%[吖-座]%'

--[吖-座]是中文字元集第一個到最後一個的范圍,雖然匹配准確,但是用Like'%的效率很低

Ⅷ sql創建客戶表,黑名單表……

CREATE TABLE [dbo].[客戶基本信息](
[客戶編號] [char](10) NOT NULL,
[客戶名稱] [varchar](50) NULL,
[助記碼] [varchar](50) NULL,
[地區] [varchar](50) NULL,
[業務員] [varchar](50) NULL,
[客戶電話] [varchar](25) NULL,
[客戶聯系人] [varchar](25) NULL,
[備注] [nchar](10) NULL,
CONSTRAINT [PK_客戶基本信息] PRIMARY KEY CLUSTERED
(
[客戶編號] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

go
CREATE TABLE [dbo].[黑名單](
[客戶編號] [char](10) NOT NULL,
[日期] [datetime] NOT NULL,
[原因] [varchar](100) NULL,
[備注] [varchar](10) NULL,
[有效標志] [int] NOT NULL
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

ALTER TABLE [dbo].[黑名單] ADD CONSTRAINT [DF_黑名單_日期] DEFAULT (getdate()) FOR [日期]
GO

ALTER TABLE [dbo].[黑名單] ADD CONSTRAINT [DF_黑名單_有效標志] DEFAULT ((1)) FOR [有效標志]
GO

有效標志 1 表示這條記錄有效 0 表示無效

Ⅸ 如何用SQL自動生成序號和分序號

需要用row_number來給分組添加序號。

1、創建測試表,插入數據:

createtabletest(sidint,snamevarchar(20),sclassvarchar(20),scoreint);insertintotestvalues(1,'張三','一年一班',100)insertintotestvalues(2,'李四','一年一班',78)insertintotestvalues(3,'王五','一年一班',67)insertintotestvalues(4,'趙六','一年一班',87)insertintotestvalues(5,'badkano','一年二班',98)insertintotestvalues(6,'網路知道團長','一年二班',99)insertintotestvalues(7,'小小動','一年二班',99)insertintotestvalues(8,'劉備','一年三班',56)insertintotestvalues(9,'張飛','一年三班',67)insertintotestvalues(10,'關羽','一年三班',76)

2、要求按照班級總分給出班級排名(即序號),執行語句:

selectrow_number()over(orderbyscoredesc)排名,sclass班級,score總分from(selectsclass,SUM(score)scorefromtestgroupbysclass)t

3、查詢結果:

Ⅹ 高手進來看看,SQL SERVER 2000關於助記碼的問題!

你這個函數可以傳變數呀!實際上你的客戶姓名欄位就當做變數

update temp set 助記碼=dbo.fun_getPY(客戶姓名)