/*
有一个成语表,请计算
1)每个字笔画数都相同的成语
2)每个字都含有偏旁三点水或火字旁的成语
*/
--创建汉字词典
CREATE TABLE myHanzi (
id INT NOT NULL,
zi Nvarchar(255),
py varchar(255),
wubi varchar(255),
bushou Nvarchar(255),
bihua INT,
pinyin varchar(255),
PRIMARY KEY (id)
);
GO
SELECT * FROM myHanzi WITH(nolock)
GO
--创建一个函数,判断一个词的部首都是啥啥
CREATE FUNCTION ft_checkbushou(@Val NVARCHAR(200),@bushou NVARCHAR(20))
RETURNS BIT
AS
BEGIN
DECLARE @cnt INT
DECLARE @bu NVARCHAR(20)
DECLARE @rst BIT=0
SELECT @cnt=COUNT(DISTINCT A.bushou),@bu=MAX(A.bushou) FROM dbo.myHanzi A INNER JOIN
(
SELECT SUBSTRING(@Val,number,1) AS zi FROM master..spt_values WHERE type='P' AND number BETWEEN 1 AND LEN(@Val)
) B ON A.zi=B.zi
IF @cnt=1 AND @bu=@bushou
SET @rst = 1
RETURN @rst
END
GO
--创建一个函数,判断一个词的笔画都是啥啥
CREATE FUNCTION ft_checkbihua(@Val NVARCHAR(200),@bihua INT)
RETURNS BIT
AS
BEGIN
DECLARE @cnt INT
DECLARE @bi INT
DECLARE @rst BIT=0
SELECT @cnt=COUNT(DISTINCT A.bushou),@bi=MAX(A.bihua) FROM dbo.myHanzi A INNER JOIN
(
SELECT SUBSTRING(@Val,number,1) AS zi FROM master..spt_values WHERE type='P' AND number BETWEEN 1 AND LEN(@Val)
) B ON A.zi=B.zi
IF @cnt=1 AND @bi=@bihua
SET @rst = 1
RETURN @rst
END
GO
SQL Server计算汉字笔画部首
最新推荐文章于 2024-04-15 00:23:04 发布