GVKun编程网logo

SqlSerVer 列与逗号分隔字符串 互相转换(sqlserver列转行,逗号分隔)

16

在本文中,您将会了解到关于SqlSerVer列与逗号分隔字符串互相转换的新资讯,同时我们还将为您解释sqlserver列转行,逗号分隔的相关在本文中,我们将带你探索SqlSerVer列与逗号分隔字符串

在本文中,您将会了解到关于SqlSerVer 列与逗号分隔字符串 互相转换的新资讯,同时我们还将为您解释sqlserver列转行,逗号分隔的相关在本文中,我们将带你探索SqlSerVer 列与逗号分隔字符串 互相转换的奥秘,分析sqlserver列转行,逗号分隔的特点,并给出一些关于asp.net – 如何在SQL Server存储过程中使用逗号分隔(拆分)字符串、mssql sqlserver sql 对使用逗号分隔的字符串 转换为数据表的另类方法实现、mssql sqlserver 将逗号分隔的一列数据转换为多列数据的方法分享、MSSQLServer 和 Mysql 数据互相转换的实用技巧。

本文目录一览:

SqlSerVer 列与逗号分隔字符串 互相转换(sqlserver列转行,逗号分隔)

SqlSerVer 列与逗号分隔字符串 互相转换(sqlserver列转行,逗号分隔)

在项目中,使用sqlServer数据库,有一个需求,需要将数据库的某一列,转换成逗号分隔的字符串。同时,需要将处理完的字符串,转换成为一列。

经过查阅资料与学习,通过以下方式可以实现如上所述需求:

1、编写一个表值函数,传入一个字符串,实现转换成列,条件以逗号分隔(任何符号都可以自定义)

  --该函数把传递过来的字符串转换成IN 后面的列表,可以处理以分号,逗号以及空格分隔的字符串  
CREATE FUNCTION [dbo].[GetInStr]   
             (@SourceStr varchar(2000))--源字符串  
  
RETURNS  @table table(list  varchar(50) )    
  AS    
BEGIN  
  
--  select @sourcestr =  replace(@sourcestr,';',',')      
--  select @sourcestr = replace(@sourcestr,' ',')  
 --declare @OutStr varchar(200)    
   if charindex(',@sourcestr)>0    
    begin  
      declare @i int  
      declare @n int  
      set @i=1  
      while charindex(',@sourcestr,@i)>0  
        begin  
           set @n=charindex(',@i)  
           insert into @table values(substring(@sourcestr,@i,@n-@i) )  
           set @i=@n+1  
        end  
        insert into @table values(substring(@sourcestr,len(@sourcestr)-@i+1))  
    end  else insert into @table values(@sourcestr)  
  
  delete from @table where isnull(list,'') = ''  
return  
END  

2、通过for XML Path实现将列转换成逗号连接的字符串

 SELECT STUFF((SELECT ','+字段名 FROM 表名 for xml path('')),1,'')

STUFF函数的意义是去掉组成字符串的尾数逗号。

asp.net – 如何在SQL Server存储过程中使用逗号分隔(拆分)字符串

asp.net – 如何在SQL Server存储过程中使用逗号分隔(拆分)字符串

我有一个复选框列表.所选(已检查)的项目存储在List< string>中.选择.

例如,选择的值是星期一,星期二,星期四,7天

我正在转换List<>以逗号分隔的字符串,即

string a= "monday,tuesday,thursday"

现在,我将此值作为字符串传递给存储过程.我想解雇像:

Select * 
from tblx 
where days = 'Monday' or days = 'Tuesday' or days = 'Thursday'`

我的问题是:如何在存储过程中分离字符串?

解决方法

如果您将逗号分隔(任何分隔符)字符串传递给存储过程并在查询中使用,那么必须吐出该字符串然后您将使用它.

下面有例子:

DECLARE @str VARCHAR(500) = 'monday,thursday'
CREATE TABLE #Temp (tDay VARCHAR(100))
WHILE LEN(@str) > 0
BEGIN
    DECLARE @TDay VARCHAR(100)
    IF CHARINDEX(',',@str) > 0
        SET  @TDay = SUBSTRING(@str,CHARINDEX(',@str))
    ELSE
        BEGIN
        SET  @TDay = @str
        SET @str = ''
        END
  INSERT INTO  #Temp VALUES (@TDay)
 SET @str = REPLACE(@str,@TDay + ','')
 END

 SELECT * 
 FROM tblx 
 WHERE days IN (SELECT tDay FROM #Temp)

mssql sqlserver sql 对使用逗号分隔的字符串 转换为数据表的另类方法实现

mssql sqlserver sql 对使用逗号分隔的字符串 转换为数据表的另类方法实现

转自:http://www.maomao365.com/?p=10739
摘要:
下文讲述在 sqlserver 对逗号分隔的字符串转换为数据表的另类方法实现,如下所示:
实验环境:sql server 2008 R2 
实现思路:
将组合字符串中的逗号替换为 “''as n union all select ''”, 然后将替换后的字符串加上 select 和 前后加上单引号 是其成为可执行 sql 脚本,
最后运行替换后的字符串,就可以得到一张数据表,如下所示: 

declare @maomao365 varchar(1000)

set @maomao365 =''sqlserver,blog,other'';
---将逗号替换为 ''as n union all select '' 
set @maomao365 = REPLACE(@maomao365,'','',
'''''' as n union all select ''''''
);
---在字符串前面加上select 和单引号 ,后面也加上单引号 
set @maomao365 ='' select ''''''+ @maomao365 + '''''''';
print @maomao365

exec (@maomao365)

 

mssql sqlserver 将逗号分隔的一列数据转换为多列数据的方法分享

mssql sqlserver 将逗号分隔的一列数据转换为多列数据的方法分享

原文: mssql sqlserver 将逗号分隔的一列数据转换为多列数据的方法分享

 转自:http://www.maomao365.com/?p=10278 

摘要:
下文讲述 sqlserver 中将使用逗号组合的单列数据,分隔为多列数据的方法
实验环境:sql server 2012 
实现思路:
1. 将逗号分隔的数据替换成为 xml 数据
2. 使用 xml 读取函数读取相关数据
例:
将包含逗号字符串拆分为多列的示例 

复制代码
create table [maomao365.com]
(info varchar(200))
go
---生成基础数据
insert into [maomao365.com]
(info)values(''1,2,3,4,5''),
(''6,7,8,9''),(''10,11,23,24,45,67'')
go

---使用cte表达式转换为xml格式,转换为相应的列信息
;
with tmp as (
select ''<tmp>'' + replace(info,'','',''</tmp><tmp>'') + ''</tmp>'' as newInfo from [maomao365.com]
)

---生成xml信息
select 
convert(xml,newInfo).value(''tmp[1]'',''int'') as field1,
convert(xml,newInfo).value(''tmp[2]'',''int'') as field2,
convert(xml,newInfo).value(''tmp[3]'',''int'') as field3,
convert(xml,newInfo).value(''tmp[4]'',''int'') as field4,
convert(xml,newInfo).value(''tmp[5]'',''int'') as field5,
convert(xml,newInfo).value(''tmp[6]'',''int'') as field6
from tmp 
go
truncate table [maomao365.com]
drop table [maomao365.com]
复制代码

MSSQLServer 和 Mysql 数据互相转换

MSSQLServer 和 Mysql 数据互相转换

1:MSsqlServer数据库导入到MysqL数据库

步骤:

1.安装MysqL数据库的ODBC驱动,mysql-connector-odbc-3.51.23-win32.msi,下载并安装。

2.在MysqL中创建数据库实例。

3.打开控制面板 --> 管理工具 --> 数据源ODBC,在用户DSN中添加一个MysqL ODBC 3.51数据源。

4.在登录login选项卡中输入数据源名称Data Source Name,此处输入MysqLDNS(也可以自己随便命名,只要在后面导入数据的时候选择正确的数据源名字就行);然后输入服务器Server,用户User,密码Password,输入正确后选择要导入的数据库,Database选择你需要导入的数据库。在连接选项connect options中根据需要设置MysqL使用的端口port和字符集Character Set。

注:字符集一定要和MysqL服务器相对应,如果MysqL使用了gbk字符集,则一定要设置字符集为gbk,否则导入到sql Server可能会出现问号乱码。

5.打开sql server企业管理器,选择该数据库,单击右键选择所有任务 --> 导出数据。

6.‘选择数据源’为默认,‘选择目的’为刚刚安装的MysqL数据源,用户/系统DSN为MysqLDNS。在‘指定表复制或查询’中选择‘从源数据库复制表和视图’,在‘选择源表和视图’里,选择需要导入的表,即可将数据从MSsqlServer数据库导入到MysqL数据库中。

 

2:MysqL数据库导入到MSsql数据库中

1.安装MysqL数据库的ODBC驱动,mysql-connector-odbc-3.51.19-win32.msi

2.打开控制面板\管理工具\数据源ODBC,在用户DSN中添加一个MysqL ODBC 3.51数据源。

3.在登录login选项卡中输入数据源名称Data Source Name,此处输入MysqLDNS;然后输入服务器,用户User,密码Password,输入正确后选择要导入的数据库。在连接选项connect options中根据需要设置MysqL使用的端口port和字符集Character Set。

注:字符集一定要和MysqL服务器相对应,如果MysqL使用了gbk字符集,则一定要设置字符集为gbk,否则导入到sql 可能会出现问号乱码。

4.打开sql server企业管理器,新建一数据库MysqL。选择该数据库,单击右键选择所有任务\导入数据。

5.选择数据源为其它(ODBC数据源),用户/系统DSN为MysqLDNS。其余根据向导进行,即可将数据从MysqL数据库导入到MSsql数据库中

今天的关于SqlSerVer 列与逗号分隔字符串 互相转换sqlserver列转行,逗号分隔的分享已经结束,谢谢您的关注,如果想了解更多关于asp.net – 如何在SQL Server存储过程中使用逗号分隔(拆分)字符串、mssql sqlserver sql 对使用逗号分隔的字符串 转换为数据表的另类方法实现、mssql sqlserver 将逗号分隔的一列数据转换为多列数据的方法分享、MSSQLServer 和 Mysql 数据互相转换的相关知识,请在本站进行查询。

本文标签: