当前位置:首页 » 编程语言 » sql获取字符串

sql获取字符串

发布时间: 2022-05-25 12:38:38

sql截取字符串!

declare
@s
nvarchar(200),@s0
nvarchar(20),@s1
nvarchar(200),@s2
nvarchar(200)
set
@s0='默认风格'
set
@s='默认风格|#007168|23|紫色风格|#E8D6FE|21|蓝色风格|#bad2fe|22'
declare
@r1
int,@r2
int
if
substring(@s,len(@s),1)<>'|'
set
@s=@s+'|'
set
@r1=charindex(@s0,@s)
--文字开始位置
select
@s1=substring(@s,@r1+len(@s0)+1,len(@s))
--文字+“|”以后的子串
set
@r2=@r1+charindex('|',@s1)+len(@s0)
--子串中第一个“|”相对于原串的起始位置
set
@s2=substring(@s1,charindex('|',@s1)+1,len(@s1))
--第一个“|”后的子串
set
@r2=@r2+charindex('|',@s2)
print
substring(@s,1,@r1-1)+substring(@s,@r2+1,len(@s))
你可以把@s0改成任意的什么“风格”。
把这段代码修改一下,可以作成一个函数,把@s0和@s作为参数,最后的print作为返回值。

② sql如何获取字符串中的指定字符

1、创建测试表,

create table test_int(value varchar2(50));

③ SQL 怎么提取一个模式的字符串

这个通常我的做法有两种方式(sql server,如果你是oracle或是其他的。。。。。。)

第一种,也是我用的最多的,就是用sql server 自身带的一些字符串函数去处理,这种方式需要你自己去分析,做法比较灵活,比如书你这个,如果仅以你这3个示例字段来讲,可以将‘ A.’替换成‘’

updatetable1setcolumn1=REPLACE(column1,'A.','')

然后依次去执行B C ...,但是这么做也是有风险的,需要你了解这一列数据,比如这样做会把小写的‘ a.’也替换掉,这时可能就需要通过collate Chinese_PRC_CS_AS来限定排序规则等方式来处理了,比较灵活,但是需要结合实际案例来做,只是给你一个思路,自己发挥吧。

第二种,这种只是针对sql server了,别的数据库不知道可不可以这么解决。

sql server从2005开始,也是基于.NET平台了,所以可以用C#写一个正则表达式去处理这个问题,如果你对C#和正则表达式了解的话,这个解决起来就十分简单了,而且貌似没有解决不了问题了。

我个人通常都用第一种,用C#去处理,用过几次,在特殊场合有奇效,希望对你有用。

④ sql 怎么取 字符串的前几位

sql中,使用LEFT函数即可取到字符串的前几位。

LEFT(c, number_of_char)用于返回某个被请求的文本域的左侧部分,其中c代表被请求的文本域,number_of_cha代表需要取出的字符串位数。如“LEFT("..com", 6)”即可取得字符串""。

(4)sql获取字符串扩展阅读:

sql中,常用函数介绍:

1、AVG():返回平均值

2、COUNT():返回行数

3、FIRST():返回第一个记录的值

4、LAST():返回最后一个记录的值

5、MAX():返回最大值

6、MIN():返回最小值

7、SUM():返回总和

8、UCASE():将某个字段转换为大写

9、LCASE():将某个字段转换为小写

10、MID():从某个文本字段提取字符

11、LEN():返回某个文本字段的长度

12、ROUND():对某个数值字段进行指定小数位数的四舍五入

13、NOW():返回当前的系统日期和时间

14、FORMAT():格式化某个字段的显示方式

15、INSTR():返回在某个文本域中指定字符的数值位置

16、LEFT():返回某个被请求的文本域的左侧部分

17、RIGHT():返回某个被请求的文本域的右侧部分

⑤ 如何从sql字段里提取字符串

CHARINDEX函数返回字符或者字符串在另一个字符串中的起始位置。CHARINDEX函数调用方法如下:
CHARINDEX ( expression1 , expression2 [ , start_location ] )
Expression1是要到expression2中寻找的字符中,start_location是CHARINDEX函数开始在expression2中找expression1的位置。

⑥ SQL中求截取字符串语句

可以通过substring方法实现。
sql: select substring('123456789',5,2) from al;

解释:第一个参数表示要截取的字符串,第二个参数是起始位置,第三个参数是,截取的长度。
执行结果:56。

⑦ 如何获取SQL server数据库的连接字符串

一:C# 连接SQL数据库

Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;
Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;
Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;
Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;
Server=myServerName\theInstanceName;Database=myDataBase;Trusted_Connection=True;
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;

1:Integrated Security参数
当设置Integrated Security为 True 的时候,连接语句前面的 UserID, PW 是不起作用的,即采用windows身份验证模式。
只有设置为 False 或省略该项的时候,才按照 UserID, PW 来连接。
Integrated Security 还可以设置为:sspi ,相当于 True,建议用这个代替 True。
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=true;
Data Source=myServerAddress;Initial Catalog=myDataBase;;User ID=myUsername;Password=myPasswordIntegrated Security=false;

2:参数Trusted_Connection
Trusted_Connection=true,将使用当前的 Windows 帐户凭据进行身份验证
Trusted_Connection=false;将不采用信任连接方式(也即不采用Windows验证方式),而改由SQL Server 2000验证方式
Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=false;
Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;

3:Initial Catalog是你要连接的数据库的名字

4:WINCE连接
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;User ID=myDomain\myUsername;Password=myPassword;

二:可以利用SqlConnectionStringBuilder,这样不必去记住名称。
SqlConnectionStringBuilder scsb = new SqlConnectionStringBuilder();
scsb.DataSource = @"(local)\SQLExpress";
scsb.IntegratedSecurity = true;
scsb.InitialCatalog = "Northwind";
SqlConnection myConnection = new SqlConnection(scsb.ConnectionString);

三:可以利用属性中的Setting来自动设置连接字符串
1:在type中选择 (connection string),
2:在DataSouce中选择数据源,然后再Server中输入服务器名,本地用(local)\SQLExpress
3:选择登陆验证方式,本次选Windows验证(即信任连接Integrated Security=True)
4:选择数据库名,确认即可
Data Source=(local)\SQLExpress;Initial Catalog=Northwind;Integrated Security=True
server = .\sqlexpress;integrated security = true;database = northwind

四:SQL2005远程服务器连接方法

如何打开sql server 2005 的1433端口:
配置工具->Sql Server Configuration Manager->MSSQLSERVER的协议看看TCP/IP协议是否启动,如果启动,右键菜单点"属性" ,在分页菜单中选"IP地址",把"IP1"和"IP2"中"TCP端口"为1433,"已启用"改为"是"
配置工具->Sql Server Configuration Manager->SQL Native Client 配置->客户端协议->TCP/IP选择TCP/IP右键菜单中"属性",确认"默认端口"是1433,"已启用"为"是"。

SQL Server 2005 远程连接配置TCP/IP属性:
Surface Area Configuration --> Database Engine --> Remote Connections --->Using TCP/IT SQL Server 外围应用配置器?服务和连接外围配置?database englie?远程连接?启用(远程连接的TCP/IP和named pipes)
SQL Server Configuration Manager?SQL2005网络配置?启用TCP/IP和named pipes

其他说明见下: sqlserver2005(Express版),为了便于管理,你还需要去下一个manage管理器:
安装好manage管理器后,在程序中连接sqlserver2005,下面几点是要注意的。
1. 开启sql2005远程连接功能,开启办法如下, 配置工具->sql server外围应用配置器->服务和连接的外围应用配置器->打开MSSQLSERVER节点下的Database Engine 节点,先择"远程连接",接下建议选择"同时使用TCP/IP和named pipes",确定后,重启数据库服务就可以了.
2.登陆设置改为,Sql server and windows Authentication方式同时选中,具体设置如下: manage管理器->windows Authentication(第一次用windows方式进去),->对象资源管理器中选择你的数据服务器--右键>属性>security>Sql server and windows Authentication方式同时选中.
3:设置一个Sql server方式的用户名和密码,具体设置如下: manage管理器->windows Authentication>new query>sp_password null,'sa123456','sa' 这样就设置了一个用户名为sa ,密码为:sa123456的用户,下次在登陆时,可以用Sql server方式, 用户名为sa ,密码为:sa123456的用户进数据库了.
4: 做完上面三步后,这样写连接字符串就可以顺利进入数据库了,
(server=.\sqlexpress;uid=sa;pwd=sa123456;database=master";

五:SQL2000远程服务器连接方法

1:看ping 服务器ip能否ping通。
2:在Dos或命令行下输入telnet 服务器IP 端口,看能否连通。 如telnet 202.114.100.100 1433 通常端口值是1433,因为1433是sql server 2000的对于Tcp/IP的默认侦听端口。如果有问题,通常这一步会出问题。通常的提示是“……无法打开连接,连接失败"。
如果这一步有问题,应该检查以下选项。
1) 检查远程服务器是否启动了sql server 2000服务。如果没有,则启动。
2) 检查服务器端有没启用Tcp/IP协议,因为远程连接(通过因特网)需要靠这个协议。检查方法是,在服务器上打开 开始菜单-> 程序-> Microsoft SQL Server-> 服务器网络实用工具,看启用的协议里是否有tcp/ip协议,如果没有,则启用它。
3)检查服务器的tcp/ip端口是否配置为1433端口。仍然在服务器网络实用工具里查看启用协议里面的tcp/ip的属性,确保默认端口为1433,并且隐藏服务器复选框没有勾上。 事实上,如果默认端口被修改,也是可以的,但是在客户端做 telnet测试时,写服务器端口号时必须与服务器配置的端口号保持一致。如果隐藏服务器复选框被勾选,则意味着客户端无法通过枚举服务器来看到这台服务器,起到了保护的作用,但不影响连接,但是Tcp/ip协议的默认端口将被隐式修改为2433,在客户端连接时必须作相应的改变。
4)如果服务器端操作系统打过sp2补丁,则要对windows防火墙作一定的配置,要对它开放1433端口,通常在测试时可以直接关掉windows防火墙(其他的防火墙也关掉最好)。
5)检查服务器是否在1433端口侦听。如果服务器没有在tcp连接的1433端口侦听,则是连接不上的。检查方法是在服务器的dos或命令行下面输入netstat -a -n 或者是netstat -an,在结果列表里看是否有类似 tcp 127.0.0.1 1433 listening 的项。如果没有,则通常需要给sql server 2000打上至少sp3的补丁。其实在服务器端启动查询分析器,输入 select @@version 执行后可以看到版本号,版本号在8.0.2039以下的都需要打补丁。如果以上都没问题,这时你再做telnet 服务器ip 1433 测试,将会看到屏幕一闪之后光标在左上角不停闪动。恭喜你,你马上可以开始在企业管理器或查询分析器连接了。

3: 检查客户端设置程序-> Microsoft SQL Server -> 客户端网络使用工具。像在服务器网络实用工具里一样,确保客户端tcp/ip协议启用,并且默认端口为1433(或其他端口,与服务器端保持一致就行)。
4:在企业管理器里或查询那分析器连接测试 企业管理器-> 右键SQlserver组-> 新建sqlserver注册-> 下一步-> 写入远程IP-> 下一步-> 选Sqlserver登陆-> 下一步-> 写入登陆名与密码(sa,password)-> 下一步-> 下一步-> 完成 查询分析器-> 文件-> 连接-> 写入远程IP-> 写入登录名和密码(sa,password)-> 确定通常建议在查询分析器里做,因为默认情况下,通过企业管理器注册另外一台SQL Server的超时设置是4秒,而查询分析器是15秒。修改默认连接超时的方法: 企业管理器-> 工具-> 选项-> 在弹出的"SQL Server企业管理器属性"窗口中,点击"高级"选项卡-> 连接设置-> 在 登录超时(秒) 后面的框里输入一个较大的数字查询分析器-> 工具-> 选项-> 连接-> 在 登录超时(秒) 后面的框里输入一个较大的数字通常就可以连通了,如果提示错误,则进入下一步。
5:错误产生的原因通常是由于SQL Server使用了"仅 Windows"的身份验证方式,因此用户无法使用SQL Server的登录帐户(如 sa )进行连接。解决方法如下所示:
1) 在服务器端使用企业管理器,并且选择"使用 Windows 身份验证"连接上 SQL Server。
2) 展开"SQL Server组",鼠标右键点击SQL Server服务器的名称,选择"属性",再选择"安全性" 选项卡。
3)在"身份验证"下,选择"SQL Server和 Windows "。
4) 重新启动SQL Server服务。(在dos或命令行下面net stop mssqlserver停止服务,net start mssqlserver启动服务,也是一种快捷的方法)。

⑧ SQL语句截取字符串中最后的两个字怎么做急用。在线等。

substr(str,length(str)-1)

用right函数截取,right('abc',1)取最后一个字符

substring(字符串表达式,开始位置,长度):

从一个指定字符串的指定位置截取制定长度的字符;

第一个参数表示被截取的字符串;

第二个参数表示要在第一个参数中开始截取的位置;

第三个参数表示要截取的长度。

(8)sql获取字符串扩展阅读;

SQL数据定义功能:能够定义数据库的三级模式结构,即外模式、全局模式和内模式结构。在SQL中,外模式又叫做视图(View),全局模式简称模式( Schema),内模式由系统根据数据库模式自动实现,一般无需用户过问。

SQL可以独立完成数据库生命周期中的全部活动,包括定义关系模式、录入数据、建立数据库、査询、更新、维护、数据库重构、数据库安全性控制等一系列操作,这就为数据库应用系统开发提供了良好的环境,在数据库投入运行后,还可根据需要随时逐步修改模式,且不影响数据库的运行,从而使系统具有良好的可扩充性。

⑨ SQL 截取字符串

SUBSTRING
返回字符、binary、text 或 image 表达式的一部分。有关可与该函数一起使用的有效 Microsoft® SQL Server™ 数据类型的更多信息,请参见数据类型。

语法
SUBSTRING ( expression , start , length )

参数
expression

是字符串、二进制字符串、text、image、列或包含列的表达式。不要使用包含聚合函数的表达式。

start

是一个整数,指定子串的开始位置。

length

是一个整数,指定子串的长度(要返回的字符数或字节数)。
substring()
——任意位置取子串

left()
right()
——左右两端取子串

ltrim()
rtrim()
——截断空格,没有trim()。

charindex()
patindex()
——查子串在母串中的位置,没有返回0。区别:patindex支持通配符,charindex不支持。
函数功效:
字符串截取函数,只限单字节字符使用(对于中文的截取时遇上奇数长度是会出现乱码,需另行处理),本函数可截取字符串指定范围内的字符。

应用范围:
标题、内容截取

函数格式:
string substr ( string string, int start [, int length])
参数1:处理字符串
参数2:截取的起始位置(第一个字符是从0开始)
参数3:截取的字符数量
substr()更多介绍可在PHP官方手册中查询(字符串处理函数库)

举例:
substr("ABCDEFG", 0); //返回:ABCDEFG,截取所有字符
substr("ABCDEFG", 2); //返回:CDEFG,截取从C开始之后所有字符
substr("ABCDEFG", 0, 3); //返回:ABC,截取从A开始3个字符
substr("ABCDEFG", 0, 100); //返回:ABCDEFG,100虽然超出预处理的字符串最长度,但不会影响返回结果,系统按预处理字符串最大数量返回。
substr("ABCDEFG", 0, -3); //返回:EFG,注意参数-3,为负值时表示从尾部开始算起,字符串排列位置不变
例子:

1.截取已知长度的函数

A.截取从字符串左边开始N个字符

Declare @S1 varchar(100)
Select @S1='http://www.163.com'
Select Left(@S1,4)
------------------------------------
显示结果: http

B.截取从字符串右边开始N个字符(例如取字符www.163.com)

Declare @S1 varchar(100)
Select @S1='http://www.163.com'
Select right(@S1,11)
------------------------------------
显示结果: www.163.com

C.截取字符串中任意位置及长度(例如取字符www)

Declare @S1 varchar(100)
Select @S1='http://www.163.com'
Select SUBSTRING(@S1,8,3)
------------------------------------
显示结果: www.163.com

以上例子皆是已知截取位置及长度,下面介绍未知位置的例子
2.截取未知位置的函数

A.截取指定字符串后的字符串(例如截取http://后面的字符串)
方法一:

Declare @S1 varchar(100)
Select @S1='http://www.163.com'
Select Substring(@S1,CHARINDEX('www',@S1)+1,Len(@S1))
/*此处也可以这样写:Select Substring(@S1,CHARINDEX('//',@S1)+2,Len(@S1))*/
------------------------------------
显示结果: www.163.com

需要注意:CHARINDEX函数搜索字符串时,不区分大小写,因此CHARINDEX('www',@S1)也可以写成CHARINDEX('WWW',@S1)
方法二:(与方法一类似)

Declare @S1 varchar(100)
Select @S1='http://www.163.com'
Select Substring(@S1,PATINDEX('%www%',@S1)+1,Len(@S1))
--此处也可以这样写:Select Substring(@S1,PATINDEX('%//%',@S1)+2,Len(@S1))
------------------------------------
显示结果: www.163.com

函数PATINDEX与CHARINDEX区别在于:前者可以参数一些参数,增加查询的功能
方法三:

Declare @S1 varchar(100)
Select @S1='http://www.163.com'
Select REPLACE(@S1,'http://','')
------------------------------------
显示结果: www.163.com

利用字符替换函数REPLACE,将除需要显示字符串外的字符替换为空
方法四:

Declare @S1 varchar(100)
Select @S1='http://www.163.com'
Select STUFF(@S1,CHARINDEX('http://',@S1),Len('http://'),'')
------------------------------------
显示结果: www.163.com

函数STUFF与REPLACE区别在于:前者可以指定替换范围,而后者则是全部范围内替换
B.截取指定字符后的字符串(例如截取C:\Windows\test.txt中文件名)
与A不同的是,当搜索对象不是一个时,利用上面的方法只能搜索到第一个位置
方法一:

Declare @S1 varchar(100)
Select @S1='C:\Windows\test.txt'
select right(@S1,charindex('\',REVERSE(@S1))-1)
-------------------------------------
显示结果: text.txt

利用函数REVERSE获取需要截取的字符串长度

substr()
例子:
private void DDL_AreaBind()
{
conn = new SqlConnection(ConfigurationManager.ConnectionStrings["strcon"].ConnectionString);
string str = "0000";
cmd = new SqlCommand("select AreaID,Name=ltrim(Name) from Area where right(AreaID,4) ='" + str + "'", conn);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
sda.Fill(ds, "area");
this.ddl_area.DataSource = ds.Tables["area"].DefaultView;
this.ddl_area.DataTextField = "Name";
this.ddl_area.DataValueField = "AreaID";
this.ddl_area.DataBind();

cmd = new SqlCommand("select * from Area ", conn);
cmd.CommandType = CommandType.Text;
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
adapter.Fill(ds, "city");
this.ddl_city.DataSource = ds.Tables["city"].DefaultView;
this.ddl_city.DataTextField = "Name";
this.ddl_city.DataValueField = "AreaID";
this.ddl_city.DataBind();
}
protected void ddl_area_SelectedIndexChanged(object sender, EventArgs e)
{
conn = new SqlConnection(ConfigurationManager.ConnectionStrings["strcon"].ConnectionString);
this.ddl_city.Enabled = true;
string str1="0000";
cmd = new SqlCommand("select AreaID,Name from Area where substring(AreaID,1,2)='" + this.ddl_area.SelectedValue.Substring(0,2) + "' AND substring(AreaID,3,4) <> '0000' AND substring(AreaID,5,2)='00' ", conn);
cmd.CommandType = CommandType.Text;
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
adapter.Fill(ds, "city");
this.ddl_city.DataSource = ds.Tables["city"].DefaultView;
this.ddl_city.DataTextField = "Name";
this.ddl_city.DataValueField = "AreaID";
this.ddl_city.DataBind();
}。

⑩ sql怎么取字符串的前几位

sql语句截取字符串前几位语句:

select substr(cont_no,1,9) from for_contract

SUBSTRING ( expression , start , length )

expression:是字符串、二进制字符串、text、image、列或包含列的表达式。不要使用包含聚合函数的表达式。

start:是一个整数,指定子串的开始位置。

length:是一个整数,指定子串的长度(要返回的字符数或字节数)。

eg:select id from users id的值是001.002$

select substring(ID,charindex('.',ID)+1,(charindex('$',ID)-charindex('.',ID)-1)) as idx

热点内容
eclipse查看jar包源码 发布:2025-02-12 23:59:35 浏览:972
电脑主机服务器维修 发布:2025-02-12 23:59:26 浏览:301
sqlserver标识 发布:2025-02-12 23:51:33 浏览:462
安卓怎么玩地牢猎人 发布:2025-02-12 23:50:25 浏览:943
思乡脚本 发布:2025-02-12 23:43:32 浏览:439
java的job 发布:2025-02-12 23:38:43 浏览:892
我的世界服务器授权指令 发布:2025-02-12 23:30:13 浏览:596
电脑服务器号在哪里找 发布:2025-02-12 23:22:29 浏览:12
linux查看系统是32位 发布:2025-02-12 23:17:29 浏览:989
从数据库中随机取数据库数据 发布:2025-02-12 23:17:25 浏览:878