我有一个包含以下字符串的变量:AL,CA,TN,VA,NY
我无法控制我在该变量中获得的内容(来自报告服务)
我需要让它看起来像这样:'AL','CA','TN','VA','NY'
我该怎么做呢?
我有一个包含以下字符串的变量:AL,CA,TN,VA,NY
我无法控制我在该变量中获得的内容(来自报告服务)
我需要让它看起来像这样:'AL','CA','TN','VA','NY'
我该怎么做呢?
declare @x varchar(50) = 'AL,CA,TN,VA,NY'
select '''' + REPLACE(@x, ',', ''',''') + ''''
我最终做了一些非常相似的事情,我认为我会发布。(不过我会感谢米奇)
这需要照顾中间:
SET @StateList = REPLACE(@StateList, ',', ''',''')
然后引用边缘:
SET @WhereClause1 = @WhereClause1 + 'AND customerState IN (''' + @StateList + ''') '
对于更通用的答案,当您不知道您的输出到底是什么样子时,请使用正则表达式。
这将使您可以匹配 [AZ]{2} 之类的内容并将其替换为“$&”。
一位评论者建议这对于这项任务来说太过分了——同意,如果你能保证你总是会得到一个这样的字符串。但是,其他人稍后会发现这些问题页面存在类似但不准确的问题,因此拥有其他选项会有所帮助。
不要打扰动态sql。
您需要将字符串转换为表格,以便 A、B、C、D
变成
价值 A B C D
使用类似 http://www.sqlusa.com/bestpractices/training/scripts/splitcommadelimited/的函数
那么你可以使用 CROSS APPLY (这就像加入一个表,但是一个由函数创建的表)或者你可以把它放在一个表变量中并加入到那个
我想知道下面的脚本是否在 SQL 中而不是在 T-SQL 中运行
DECLARE @tblName varchar(30) SET @tblName = CONVERT(VARCHAR(20),GETDATE(),112) + '表'
DECLARE @sql nvarchar(4000) SELECT @sql = 'CREATE TABLE "' + @tblName + '" (ID VARCHAR(15), Name VARCHAR(15))'
执行(@sql)
它给了你错误
消息 170,Sev 15:第 1 行:“20090714Table”附近的语法不正确。[SQL 状态 42000]