1. sql字符串比较
写两个函数,得到前后两部分,再进行比较,但是这样效率比较低,如果经常要比较,就拆成两字段。你的数据是有规律的,中间用,分隔了呀。sql
server
示例如下:
declare
@value
varchar(100)
set
@value='123.0000,456.1111'
select
left(@value,
charindex(',',@value,0)-1)
--左边
select
right(@value,
len(@value)-
charindex(',',@value,0))
--右边
2. sql 怎么判断一个字符串包含在另一个字符串
三、取子串函数
1、left()
LEFT(<character_expression>,<integer_expression>)
返回character_expression左起integer_expression个字符。
2、RIGHT()
RIGHT(<character_expression>,<integer_expression>)
返回character_expression右起integer_expression个字符。
3、SUBSTRING()
SUBSTRING(<expression>,<starting_position>,length)
返回从字符串左边第starting_position个字符起length个字符的部分。
四、字符串比较函数
1、CHARINDEX()----这个应该是你想要的函数!!
返回字符串中某个指定的子串出现的开始位置。
CHARINDEX(<’substring_expression’>,<expression>)
其中substring_expression是所要查找的字符表达式,expression可为字符串也可为列名表达式。如果没有发现子串,则返回0值。
此函数不能用于TEXT和IMAGE数据类型。
2、PATINDEX()
返回字符串中某个指定的子串出现的开始位置。
PATINDEX(<’%substring_expression%’>,<column_name>)其中子串表达式前后必须有百分号“%”否则返回值为0。
与CHARINDEX函数不同的是,PATINDEX函数的子串中可以使用通配符,且此函数可用于CHAR、VARCHAR和TEXT数据类型。
3. SQL中取子串个数
可以使用 LEN 配合 REPLACE 一起来使用。
CREATE TABLE #test (
test varchar(20)
);
go
INSERT INTO #test
SELECT '01' UNION ALL
SELECT '01.01' UNION ALL
SELECT '01.01.02' UNION ALL
SELECT '01.01.02.03' UNION ALL
SELECT '01.01.02.03.04'
GO
1> SELECT
2> test,
3> LEN(test) - LEN(REPLACE(test, '.', '')) AS [个数]
4> FROM
5> #test
6> go
test 个数
-------------------- -----------
01 0
01.01 1
01.01.02 2
01.01.02.03 3
01.01.02.03.04 4
(5 行受影响)
4. 如何用SQL语句判断字符串
select *
from table1
where char1 like '%mystring%'
‘%’表示长度大于等于0的任意字符串,而‘?’可以表示一个字符。
5. sql中比较一个字符串中是否含有另一个字符串中的一个字符
sql中比较一个字符串中是否含有另一个字符或字符串可用charindex函数。
如:
selectcharindex('爱','我爱祖国')
结果为:
返回值为0,则代表“a”不存在于“我爱祖国”字符串中。
语法:
CHARINDEX ( expression1 , expression2 , [ start_location ] )
参数:
expression1
一个表达式,其中包含要寻找的字符的次序。expression1 是一个短字符数据类型分类的表达式。
expression2
一个表达式,通常是一个用于搜索指定序列的列。expression2 属于字符串数据类型分类。
start_location
在 expression2 中搜索 expression1 时的起始字符位置。如果没有给定 start_location,而是一个负数或零,则将从 expression2 的起始位置开始搜索。
6. 在sql语句中怎么判断一个字段是否包含在另一个字符串中
思路是,读取B.name字符串后进行字符串的的分割 name.,然后最后执行模糊查询A表,可以这样
WHERE (A.nameLIKE '%查%') AND (A.nameLIKE '%体%')
只能说完全用sql语句实现,有点难吧!
string name = "查体";
char[] NameChar = name.ToArray();
string SqlStr = "select * from A ";
for (int i = 0; i < NameChar.Count(); i++)
{
if (i == 0)
{
SqlStr += "where A.name LIKE'%" + NameChar[0] + "%'";
}
else
{
SqlStr += " and A.name LIKE'%" + NameChar[i] + "%'";
}
}
可以告诉你,没有关联查一个表还行,两个表都来不太可能。
7. sql中 如何判断一个字符串是否包含另外一个字符串
思路是,读取B.name字符串后进行字符串的的分割 name.,然后最后执行模糊查询A表,可以这样
WHERE (A.nameLIKE '%查%') AND (A.nameLIKE '%体%')
只能说完全用sql语句实现,有点难吧!
string name = "查体";
char[] NameChar = name.ToArray();
string SqlStr = "select * from A ";
for (int i = 0; i < NameChar.Count(); i++)
{
if (i == 0)
{
SqlStr += "where A.name LIKE'%" + NameChar[0] + "%'";
}
else
{
SqlStr += " and A.name LIKE'%" + NameChar[i] + "%'";
}
}
可以告诉你,没有关联查一个表还行,两个表都来不太可能。 而且你对关联查询理解有误!多看下概念。
8. 查询字符串子串的SQL语句
思路1:
select * from table
从获取的结果中:R;48;39;13;15;8;3;1截取字符串。
使用substring(.....)方法。
思路2:
Access本身好像不支持substring(),你可以这样:
select right(left(Data,7),2) as columnName from table。
手写的,没测试过,希望对你有帮助,祝你好运!!!
9. sql server 用什么函数返回字符串中的子串
CHARINDEX(C1,C2[,I])
【功能】在一个字符串中搜索指定的字符,返回发现指定的字符的位置;
【说明】多字节符(汉字、全角符等),按1个字符计算
【参数】C1希望搜索的字符串
C2被搜索的字符串
I 搜索的开始位置,默认为1
【返回值】数值
【实例】
select charindex('c','abcdefgc',4)
10. sql判断两个字符串是否子集关系
您好,这样的:
一、
SELECT *
FROM (SELECT user, pp
FROM A
MINUS
SELECT user, pp
FROM B) new_table
二、
SELECT A.*
FROM A,
(SELECT user, pp
FROM A
MINUS
SELECT user, pp
FROM B) un
WHERE a.user = un.user AND a.pp = un.pp