当前位置:首页 » 编程语言 » 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(客户姓名)