⑴ sql中怎样提取纯数字或者纯字母的字段
完全按照DB2语法设计:
drop function TEST
go
create function test(@input varchar(100))
returns int
begin atomic
declare @int int default 0;
declare @input_lenght int default 0;
set @input_lenght = length(@input);
while @input_lenght <> 0 do
if ( substr(@input,length(@input) - @input_lenght +1,1) in ('0','1','2','3','4','5','6','7','8','9') ) then
set @int = @int + 0;
elseif ( substr(@input,length(@input) - @input_lenght +1,1) in ('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z')) then
set @int = @int - 1;
end if;
set @input_lenght = @input_lenght -1;
end while;
if ( @int = 0 or @int = -1* length(@input)) then --- 如果累积为0全是数字;如果累积正好是-1乘以长度则正好全是字段
return 0;
else
return 1;
end if;
end
go
select test ('123456') from sysibm.al 结果是 0
select test ('123b456a') from sysibm.al 结果是 1
select test ('abcdefg') from sysibm.al 结果是 0
⑵ SQL怎么截取小数点前的数字,但是不要四舍五入
其实,你说的截取小数点前的数字,也就是将小数转换为整数。
可以使用函数【cast】进行转换
示例:将1234.9678转为整数
selectcast(1234.9678asint)
输出结果为:1234
⑶ 从sqlserver数据库中提取日期,并把年月日分别截取出来
可以用substring截取,也可以转换成datetime然后用year、month、day三个函数计算
以标准日期格式2012-12-19
10:50:02.000为例
substring(col,1,4)=year
substring(col,6,2)=month
substring(col,9,2)=day
year(convert(datetime,col))、month(convert(datetime,col))、day(convert(datetime,col))
⑷ 【搬运】Sql Server中截取字符串的常用方法
1、LEFT() 从左边截
语法:LEFT(character,integer) 返回 从字符串左边开始 指定个数的字符
说明:参数1:要截取的字符串,参数2:截取字符个数
示例:selectLEFT('SqlServer_2008',3)
结果:Sql
2.RIGHT() 从右边截
语法:RIGHT(character,integer) 返回 从字符串右边开始 指定个数的字符
说明:参数1:要截取的字符串,参数2:截取字符个数
示例:selectLEFT('SqlServer_2008',4)
结果:2008
3.SUBSTRING() 中间截
语法:SUBSTRING(character,start,length) 返回从字符串 中间 的字符
说明:参数1:要截取的字符串,参数2:开始截取的位数,参数3:要截取的字符长度
示例:selectSUBSTRING('SqlServer_2008',4,6)--4)
结果:Server
以上。
https://www.cnblogs.com/xielong/p/7670757.html
感谢二位!
⑸ sql 截取前8位和最后4位
1、SUBSTRING
返回字符、binary、text或 image表达式的一部分。有关可与该函数一起使用的有效 Microsoft® SQL Server™数据类型的更多信息,请参见数据类型。
语法
SUBSTRING(expression , start , length )
参数
expression
是字符串、二进制字符串、text、image、列或包含列的表达式。不要使用包含聚合函数的表达式。
start
是一个整数,指定子串的开始位置。
length
是一个整数,指定子串的长度(要返回的字符数或字节数)。
substring()
——任意位置取子串
2、left() 和right()
——左右两端取子串
示例:
declare@strvarchar(100);
set@str='gwengnwelgkweg';
selectSubstring(@str,0,8)--从左边第一位开始,截取8位
selectSubstring(@str,Len(@str)-4,4)--截取后4位
--left()right()
selectleft(@str,8)--截取前8位
selectright(@str,4)--截取后4位
⑹ sql 中 如何截取一个字段的某部分并同时与某一数值比较大小
你说的函数是oracle中的substr,sqlserver中的substring
下面是贴来的,就是手册翻译而来的,你随便看看吧
语法
SUBSTRING
(
expression
,
start
,
length
)
参数
expression
是字符串、二进制字符串、text、image、列或包含列的表达式。不要使用包含聚合函数的表达式。
start
是一个整数,指定子串的开始位置。
length
是一个整数,指定子串的长度(要返回的字符数或字节数)。
说明
由于在
text
数据上使用
SUBSTRING
时
start
和
length
指定字节数,因此
DBCS
数据(如日本汉字)可能导致在结果的开始或结束位置拆分字符。此行为与
READTEXT
处理
DBCS
的方式一致。然而,由于偶而会出现奇怪的结果,建议对
DBCS
字符使用
ntext
而非
text。
返回类型
如果
expression
是支持的字符数据类型,则返回字符数据。如果
expression
是支持的
binary
数据类型,则返回二进制数据。
返回字符串的类型与给定表达式的类型相同(表中显示的除外)。
给定的表达式
返回类型
text
varchar
image
varbinary
ntext
nvarchar
注释
在字符数中必须指定使用
ntext、char
或
varchar
数据类型的偏移量(start
和
length)。在字节数中必须指定使用
text、image、binary
或
varbinary
数据类型的偏移量。
说明
兼容级别可能影响返回值。有关兼容级别的更多信息,请参见
sp_dbcmptlevel。
示例
A.
在字符串上使用
SUBSTRING
下例显示如何只返回字符串的一部分。该查询在一列中返回
authors
表中的姓氏,在另一列中返回
authors
表中的名字首字母。
USE
pubs
SELECT
au_lname,
SUBSTRING(au_fname,
1,
1)
FROM
authors
ORDER
BY
au_lname
下面是结果集:
au_lname
----------------------------------------
-
Bennet
A
Blotchet-Halls
R
Carson
C
DeFrance
M
del
Castillo
I
...
Yokomoto
A
(23
row(s)
affected)
下例显示如何显示字符串常量
abcdef
中的第二个、第三个和第四个字符。
SELECT
x
=
SUBSTRING('abcdef',
2,
3)
下面是结果集:
x
----------
bcd
(1
row(s)
affected)
⑺ sql中怎么去截取一个冒号后面的一串数字
sql中怎么去截取一个冒号后面的一串数字?1、首先在桌面上,点击“Management Studio”图标。
2、之后在该界面中,点击左上角“新建查询”选项。
3、接着在该界面中,输入截取指定字段某一个字符出现后的后面的字符串的sql语句“
select substring(name,charindex(',',name)+1,len(name)-charindex(',',name)) from test2;”。
4、然后在该界面中,点击左上方“执行”按钮。
5、最后在该界面中,显示截取指定字段某一个字符出现后的后面的字符串成功