sql 中 如何截取一个字段的某部分并同时与某一数值比较大小?

详细点,谢谢!
这个问题可能我描述的不清楚
从一张表中截取一个字段的某部分并同时与某一数值比较大小,选取符合该条件的值。同时在这个选取的值作为基础再加一些简单的约束显示 我这样写,大家看看有没有问题
select a.card_br,sum(b.sss)
from a,b
where datediff(year,cast(substring([Nid],7,8) as datetime),getdate())<30
and a.card_br=b.card_br
and a.date between '1' and '2'
and a.resp='xx'
group by a.card_br

你说的函数是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)
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-02-03
select * from table1 where substr(字段,2,2)=55;
第2个回答  2009-02-04
2楼是混子

参考资料:a

sql 中 如何截取一个字段的某部分并同时与某一数值比较大小?
SUBSTRING ( expression , start , length )参数 expression 是字符串、二进制字符串、text、image、列或包含列的表达式。不要使用包含聚合函数的表达式。start 是一个整数,指定子串的开始位置。length 是一个整数,指定子串的长度(要返回的字符数或字节数)。说明 由于在 t...

sql语句如何截取某字段的一部分
2、如果 expression 是一种支持的字符数据类型,则返回字符数据。(1)如果 start的索引是从1开始,则从表达式的第一个字符开始进行字符串截取,从2开始就从表达式的第二个字符开始截取,以此类推。例如:select SUBSTRING('abcde'1,2) 返回结果 ab select SUBSTRING('abcde'2,3) 返回结果 bcd select...

用SQL语句截取字符串!并比较大小!!
substring(日期,5,2)from 表名 取出来的那个就是你说的06和07了,然后再比较

sql server 怎么从文本字段中提取数字进行比较并输出大的那个?最好能...
简单的也可以直接 select max(流量包) from table 如果格式固定的话,也会比较出数字上的差异

SQL取字段中某一部分特定数值
如果只是固定取"20\/30"比较容易, 只需找到"20\/30"在此字符串的开始位置,再截取5个字符的长度就可以了,如:SELECT CASE WHEN CHARINDEX('mgdf13hj44jjjgasetrxzc20\/30nj5weyu45f5645gjhkdfjkg', '20\/30') > 0 THEN SUBSTRING('mgdf13hj44jjjgasetrxzc20\/30nj5weyu45f5645gjhkdfjkg', CHARINDEX...

SQL中怎样获取这个字段的一部分
select substr(oid,instr(oid,'.')+1,instr(oid,'.',instr(oid,'.') + 1) - instr(oid,'.') -1 ) from tabname;

如何通过SQL截取指定字段某一个字符的前面或后面的字符串?
在Oracle数据库中,截取"."字符前面和后面的字符串的实现方式与SQL Server相似,同样需要调整SQL语句以对应不同截取需求。对于Mysql数据库,同样提供了截取指定字段某一个字符前后字符串的方法。实现此功能时,需根据"."字符在字符串中的位置进行相应调整,确保SQL语句正确地从目标位置开始截取所需的字符串...

用sql语句怎么求 一个表T中 字段A,和字段B数据都相同的 数据。
把表名换成你的表 select t1.from 表名 t1,(select a,b from 表名 group by a,b having(count(*)>1)) t2 where t1.a=t2.a and t1.b=t2.b;

sql语句,如何截取指定字段某一个字符出现后的后面的字符串吗
用substring和charindex 如test表中如下数据:现在要查询“\/”后的数据内容,用如下语句:select SUBSTRING(val,CHARINDEX('\/',val)+1,LEN(val)-CHARINDEX('\/',val)) from test结果:

sql语句,如何截取指定字段某一个字符出现后的后面的字符串吗
sql语句可以截取指定字段后面的字符串,以sqlserver为例,需要用到charindex函数和substring函数。如test表中有如下数据,要求截图str字段中逗号后边的内容。可用如下语句:1 select id,substring(str,charindex(',',str)+1,len(str)-charindex(',',str)) from test;结果截图:charindex函数说明:语法:CH...

相似回答