当前位置:首页 » 编程语言 » sql选取第一个非汉字字符
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql选取第一个非汉字字符

发布时间: 2023-06-05 06:02:21

1. sql语句提取出中文的拼音首字母

正好最近收藏了一个 你可以看下思路
--将中文字符串转化成文字首拼音的组合
create function fun_getPY(@str nvarchar(4000))
returns nvarchar(4000)
as
begin
declare @word nchar(1),@PY nvarchar(4000)
set @PY=''
while len(@str)>0
begin
set @word=left(@str,1)
--如果非汉字字符,返回原字符
set @PY=@PY+(case when unicode(@word) between 19968 and 19968+20901
then (select top 1 PY from (
select 'A' as PY,N'骜' as word
union all select 'B',N'簿'
union all select 'C',N'错'
union all select 'D',N'鵽'
union all select 'E',N'樲'
union all select 'F',N'鳆'
union all select 'G',N'腂'
union all select 'H',N'夻'
union all select 'J',N'攈'
union all select 'K',N'穒'
union all select 'L',N'鱳'
union all select 'M',N'旀'
union all select 'N',N'桛'
union all select 'O',N'沤'
union all select 'P',N'曝'
union all select 'Q',N'囕'
union all select 'R',N'鶸'
union all select 'S',N'蜶'
union all select 'T',N'箨'
union all select 'W',N'鹜'
union all select 'X',N'鑂'
union all select 'Y',N'韵'
union all select 'Z',N'咗'
) T
where word>=@word collate Chinese_PRC_CS_AS_KS_WS
order by PY ASC) else @word end)
set @str=right(@str,len(@str)-1)
end
return @PY
end
--函数调用实例:
select dbo.fun_getPY('中华人民共和国AAA01')

/*

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ZHRMGHGAAA01

(1 行受影响)

*/

2. sql 查询字段中的前几个字

可以使用:substr( string, start_position, [ length ] );string:源字符串;start_position:提取的位置,字符串中第一个位置始终为1;[ length ]:提取的字符数,如果省略,substr将返回整个字符串;

针对本例举例说明:

select * from 表名wheresubstr([D],1,2)=“10”

语句功能说明:从指定表中查询D字段第1、2个字符为“10的记录”。

(2)sql选取第一个非汉字字符扩展阅读:

注意事项

语法:substr(string,start,length)

string参数:必选。数据库中需要截取的字段。

start参数:必选。

正数,从字符串指定位子开始截取;负数,从字符串结尾指定位子开始截取;0,在字符串中第一个位子开始截取。1,同理。(特殊)

length参数:可选。需要截取的长度。缺省,即截取到结束位置。

注意:若必选参数为空,那返回的结果也为空。

3. sql 提取第一个字符

sql怎样提取第一个字符的方法用到的是substring() 方法用于提取字符串中介于两个指定下标之间的字符。

  1. 返回值

    一个新的字符串,该字符串值包含stringObject的一个子字符串,其内容是从start处到stop-1 处的所有字符,其长度为stop减start。

2.说明

  • substring() 方法返回的子串包括start处的字符,但不包括stop处的字符。

  • 如果参数start与stop相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。如果start比stop大,那么该方法在提取子串之前会先交换这两个参数。

4. 在SQL2000表中有一堆数据,怎样提取第一个指定字符和最后一个指定之间的所有字符

select substring(字段名,charindex('-',字段名,0)+1,len(字段名)-charindex('-',reverse(字段名),0)-charindex('-',字段名,0))
from 表名

substring是截取函数
charindex是算特定符号位置的函数
reverse是把字符串排反序的函数

了解一下这三个函数吧,这句你就应该懂了,我这句刚才试验了一下,没问题,环境sqlserver2000

5. sql 语句 :请问怎么对字段的第一个字符进行查询

查找第一个字符匹配的方法有几种啊,不知你“请问怎么对字段的第一个字符进行查询?”是什么意思??

select * from Prescription where ProctRate like 'X%'
或者
select * from Prescription where left(ProctRate,1) = X

X就是变量,不知你的意思是不是这样

6. SQL SERVER 中 substring 取某列第一个字符的问题,

SELECT SUBSTRING(AA,1,1),* FROM AA
列名不能 加单引号 加了单引号 就是字符串了

7. sql 提取第一个字符

substring(字段,1)as
a,
substring(字段,1,2)
函数格式:
string
substr
(
string
string,
int
start
[,
int
length])
参数1:处理字符串
参数2:截取的起始位置(第一个字符是从0开始)
参数3:截取的字符数量

8. 跪求各位大侠!怎样提取sql字段存储的字符串中的单个字符

我这里由一个存储过程可以把逗号前面第一个词取出来,你用个循环就可以把所有的都取出来了
CREATE
PROCEDURE
PopFirstWord
@SourceString
NVARCHAR(4000)
=
NULL
OUTPUT,
@FirstWord
NVARCHAR(4000)
=
NULL
OUTPUT
AS
SET
NOCOUNT
ON
DECLARE
@Oldword
NVARCHAR(4000)
DECLARE
@Length
INT
DECLARE
@CommaLocation
INT
SELECT
@Oldword
=
@SourceString
IF
NOT
@Oldword
IS
NULL
BEGIN
SELECT
@CommaLocation
=
CHARINDEX(',',@Oldword)
SELECT
@Length
=
DATALENGTH(@Oldword)
IF
@CommaLocation
=
0
BEGIN
SELECT
@FirstWord
=
@Oldword
SELECT
@SourceString
=
NULL
RETURN
0
END
SELECT
@FirstWord
=
SUBSTRING(@Oldword,
1,
@CommaLocation
-1)
SELECT
@SourceString
=
SUBSTRING(@Oldword,
@CommaLocation
+
1,
@Length
-
@CommaLocation)
RETURN
@Length
-
@CommaLocation
END
RETURN
0