sql - 如果是逗号 SQL,则修剪掉最后一个字符

标签 sql sql-server tsql if-statement

我有 8 个 if 语句,如果一个字母在一个字段中打印一个单词。
并且要做的是在该字段中将所有选项连接起来。
现在我的问题是如何在最后一个选项之前放置一个 OR 并去掉最后一个选项上的逗号。
这是我得到的

    DECLARE @VAR1 VARCHAR(30)
DECLARE @VAR2 VARCHAR(30)
DECLARE @VAR3 VARCHAR(30)
DECLARE @VAR4 VARCHAR(30)
DECLARE @VAR5 VARCHAR(30)
DECLARE @VAR6 VARCHAR(30)
DECLARE @VAR7 VARCHAR(30)
DECLARE @VAR8 VARCHAR(30)
DECLARE @MASTR VARCHAR(90)
DECLARE @PATSTR VARCHAR(30)

SET @VAR1 = ''
SET @VAR2 = ''
SET @VAR3 = ''
SET @VAR4 = ''
SET @VAR5 = ''
SET @VAR6 = ''
SET @VAR7 = ''
SET @VAR8 = ''
SET @MASTR = ''
SET @PATSTR = (SELECT EMAIL FROM CLIENT
                WHERE CLIENT_KEY = 5)
IF @PATSTR LIKE '%a%' PRINT @MASTR + 'Cash, '
ELSE PRINT ''
IF @PATSTR LIKE '%b%' PRINT @MASTR + 'Check, '
ELSE PRINT ''
IF @PATSTR LIKE '%c%' PRINT @MASTR + 'Money Order, '
ELSE PRINT ''
IF @PATSTR LIKE '%d%' PRINT @MASTR + 'Visa, '
ELSE PRINT ''
IF @PATSTR LIKE '%e%' PRINT @MASTR + 'Mastercard, '
ELSE PRINT ''
IF @PATSTR LIKE '%f%' PRINT @MASTR + 'Discover, '
ELSE PRINT ''
IF @PATSTR LIKE '%g%' PRINT @MASTR + 'Amex, '
ELSE PRINT ''
IF @PATSTR LIKE '%h%' PRINT @MASTR + 'Diner Club International, '
ELSE PRINT ''
PRINT @MASTR

最佳答案

尝试这个

IF RIGHT(RTRIM(@MASTR),1) = ','
BEGIN
-- Chop off the end character
SET @MASTR = LEFT(@String, LEN(@MASTR) - 1)
END
SELECT @MASTR

关于sql - 如果是逗号 SQL,则修剪掉最后一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27639869/

相关文章:

sql-server - SQL Server 查询错误

sql-server - Sqlite 中的 TSQL "IF @@Rowcount > 0"模拟?

mysql - 减法返回空值mysql

php - 发送自动电子邮件

php - MySQL - 具有多对多关系的 INNER JOIN 查询

php - 不能在 mysqli_query 上使用 AND 运算符?

SQL从字符串中删除空格、非数字和第二个字符

sql - 如何在分页前获取不同行的总数?

sql - DELETE 逻辑不在嵌套查询中时性能最快

sql - T-SQL 过程 - 将参数过滤为 Object/CLR/Xml/UDT