相关疑难解决方法(0)

如何拆分字符串以便我可以访问项目x?

使用SQL Server,如何拆分字符串以便访问项目x?

拿一个字符串"Hello John Smith".如何按空格分割字符串并访问索引1处应该返回"John"的项目?

sql t-sql sql-server split

480
推荐指数
17
解决办法
82万
查看次数

在SqlCommand中传递数组参数

我试图将数组参数传递给C#中的SQL commnd,如下所示,但它不起作用.有没有人见过它?

string sqlCommand = "SELECT * from TableA WHERE Age IN (@Age)";
SqlConnection sqlCon = new SqlConnection(connectString);
SqlCommand sqlComm = new SqlCommand();
sqlComm.Connection = sqlCon;
sqlComm.CommandType = System.Data.CommandType.Text;
sqlComm.CommandText = sqlCommand;
sqlComm.CommandTimeout = 300;
sqlComm.Parameters.Add("@Age", SqlDbType.NVarChar);
StringBuilder sb = new StringBuilder();
foreach (ListItem item in ddlAge.Items)
{
     if (item.Selected)
     {
         sb.Append(item.Text + ",");
     }
}

sqlComm.Parameters["@Age"].Value = sb.ToString().TrimEnd(',');
Run Code Online (Sandbox Code Playgroud)

c# t-sql

126
推荐指数
7
解决办法
12万
查看次数

T-SQL拆分字符串

我有一个SQL Server 2008 R2列包含一个字符串,我需要用逗号分隔.我在StackOverflow上看到了很多答案,但它们都不适用于R2.我确保我对任何拆分函数示例都有选择权限.任何帮助非常感谢.

sql t-sql sql-server split sql-server-2008

121
推荐指数
8
解决办法
36万
查看次数

LEN函数不包括SQL Server中的尾随空格

我在SQL Server 2005中有以下测试表:

CREATE TABLE [dbo].[TestTable]
(
 [ID] [int] NOT NULL,
 [TestField] [varchar](100) NOT NULL
) 
Run Code Online (Sandbox Code Playgroud)

填充:

INSERT INTO TestTable (ID, TestField) VALUES (1, 'A value');   -- Len = 7
INSERT INTO TestTable (ID, TestField) VALUES (2, 'Another value      '); -- Len = 13 + 6 spaces
Run Code Online (Sandbox Code Playgroud)

当我尝试使用SQL Server LEN()函数找到TestField的长度时,它不计算尾随空格 - 例如:

-- Note: Also results the grid view of TestField do not show trailing spaces (SQL Server 2005).
SELECT 
 ID, 
 TestField, 
 LEN(TestField) As LenOfTestField, -- Does not include trailing …
Run Code Online (Sandbox Code Playgroud)

sql-server

102
推荐指数
7
解决办法
7万
查看次数

用于将xlsx工作表读入SQL Server数据库中的表的代码

我试图将Excel工作表(.xlsx文件)中的数据读入SQL Server 2008中的表.我希望每天作为批处理作业运行,因此希望在存储过程中编写SQL代码来执行此操作.

有人能帮助我吗?我有管理员权限.

〜TIA

t-sql sql-server xlsx

19
推荐指数
2
解决办法
7万
查看次数

T-SQL将Word拆分为字符

我到处搜索,我无法在任何地方找到这个实现.

让我说我有这个词: QWERTY

我想获得这张桌子:

Q
W
E
R
T
Y
Run Code Online (Sandbox Code Playgroud)

或者QWERTY AnotherWord我想获得

Q
W
E
R
T
Y
[space character here]
A
n
o
t
h
e
r
W
o
r
d
Run Code Online (Sandbox Code Playgroud)

t-sql string split

14
推荐指数
2
解决办法
2万
查看次数

将变量值设置为字符串数组

我想将变量设置为一串值.例如

declare @FirstName char(100)
select @FirstName = 'John','Sarah','George'

SELECT * 
FROM Accounts
WHERE FirstName in (@FirstName)
Run Code Online (Sandbox Code Playgroud)

我在行中遇到语法错误select @FirstName = 'John','Sarah','George':

Incorrect syntax near ','
Run Code Online (Sandbox Code Playgroud)

有什么办法可以用多个值设置变量吗?

sql sql-server-2008

13
推荐指数
4
解决办法
9万
查看次数

SQL Server 2012中的STRING_SPLIT

我有这个参数

@ID varchar = ‘1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20’ 
Run Code Online (Sandbox Code Playgroud)

我想做一些事情来分割逗号分隔值.

string_split功能不起作用,我收到此错误:

STRING_SPLIT功能仅在兼容级别130下可用

我尝试更改我的数据库并将兼容性设置为130,但我没有此更改的权限.

sql split sql-server-2012

11
推荐指数
3
解决办法
3万
查看次数

将SSRS中的多个值参数传递给存储过程

我试图将多值字符串参数传递给SQL Server 2012存储过程中的表类型参数.我将此代码粘贴到SSRS的数据集中:

DECLARE @mylist clinic_list_tbltype
INSERT @mylist(n) VALUES (@pm_ChooseClinics)
EXEC sp_Skillset_Summary_With_Callbacks_Report @mylist, @pm_ChooseInterval, @pm_StartDateTime, @pm_EndDateTime
Run Code Online (Sandbox Code Playgroud)

clinic_list_tbltype是我用一个名为"n"的varchar(50)字段创建的表类型.我可以像这样从SSMS调用这个存储过程(它会很快恢复):

DECLARE @mylist clinic_list_tbltype
INSERT @mylist(n) VALUES ('clinicA'), ('clinicB')
EXEC sp_Skillset_Summary_With_Callbacks_Report  @mylist, 'Daily', '6/3/2014', '6/9/2014'
Run Code Online (Sandbox Code Playgroud)

我只能在SSRS中运行一个诊所(但速度非常慢),但如果我尝试不止一个,就会出错

INSERT语句中的列数少于Values子句中指定的值

.即使运行一个clnic它也可以运行,但与在SSMS中运行查询相比,它需要非常长的时间.比如2分钟对1秒.一定是因为我正在通过('clinicA','clinicB')而不是('clinicA'),''clinicB').

怎么做?

sql-server stored-procedures reporting-services sql-server-2012

10
推荐指数
1
解决办法
2万
查看次数

如何在T-SQL中拆分字符串?

我有一个varchar @ a ='a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p',有| 划定的价值观.我想将此变量拆分为数组或表.有没有人对此有任何想法.

t-sql sql-server-2005

9
推荐指数
1
解决办法
3万
查看次数

将逗号分隔的字符串拆分为临时表

我将以下字符串变量拆分为临时表.

示例:

DECLARE @Str VARCHAR(MAX) = '10000,200000'
Run Code Online (Sandbox Code Playgroud)

现在我希望它存储在#Temp表中.

像这样:

表: #Temp

Cola     Colb
--------------
10000   200000
Run Code Online (Sandbox Code Playgroud)

sql-server

3
推荐指数
1
解决办法
4837
查看次数

SQL Server:如何使用逗号作为分隔符拆分字符串

我需要在数据库中填充纬度和经度的列,但原始信息存储为单个字符串

例如.

UDFChar1 = 41.243223,-8.183913
Run Code Online (Sandbox Code Playgroud)

我猜这个TRIM命令在这里会有用,但我不知道如何告诉它在每一半的逗号上完全停止.

我希望能够提出的是一个简单的UPDATE查询,如下所示:

UPDATE Asset
SET Lattitude = (SELECT LTRIM(UDFChar1)),
Longitude = (SELECT RTRIM(UDFChar1))
Run Code Online (Sandbox Code Playgroud)

但显然在LTRIM和RTRIM部分有一些额外的工作,所以我只选择最多的数据,而不包括UDFChar1中的逗号

关于如何实现这一点的任何想法?

sql t-sql trim

2
推荐指数
1
解决办法
4万
查看次数

从单管分隔列获取数据到不同列

我在一列 pf 表数据中有管道分隔的数据,就像这样

在此处输入图片说明

我想将该数据放在不同的列中,就像这样

在此处输入图片说明

如何将管道分隔的数据分成不同的列是 SQL?

我试着做这样的事情

;WITH GRNSumm AS (
      SELECT Value
           ,ID = Row_Number() OVER (ORDER BY Value)
      FROM   [Split]('asfasdjfsdg|sdhgs|sdg|sdgl','|')
    )
    SELECT 
    col1 = MAX(CASE WHEN ID = 1 THEN Value ELSE NULL END)
         , col2 = MAX(CASE WHEN ID = 2 THEN Value ELSE NULL END)
         , col3 = MAX(CASE WHEN ID = 3 THEN Value ELSE NULL END)
         , col4 = MAX(CASE WHEN ID = 4 THEN Value ELSE NULL END)
    into #tempdata
    FROM   GRNSumm 
Run Code Online (Sandbox Code Playgroud)

但它对我不起作用

sql sql-server

0
推荐指数
1
解决办法
44
查看次数