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() 方法用於提取字元串中介於兩個指定下標之間的字元。
返回值
一個新的字元串,該字元串值包含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