我正在尝试将此语句转换为SQL命令 - 用于测试和学习目的。
基本语法中公式中的代码是
if IsNumeric (Mid(Trim(X), 1)) Then
formula = UCASE(TRIM(MID(X, (INSTR (X, " ", 1) +1)))))
ELSE
formula = X.
我应该在sql命令中使用什么而不是公式?为了提高效率,这应该在sql命令中完成吗?即使我不应该,我想知道如何在sql命令中写这个。
到目前为止我已经
了CASE ISNUMERIC (Mid(Trim(X), 1)) Then
[BLANK] = UCASE(TRIM(MID(X, (CHARINDEX (X, " ", 1) +1)))))
ELSE
[BLANK] = X
EPV
数据样本。所以当我从后端导入/链接数据时。我的X Field看起来像各种各样: 1.'zzabc123 - 红车' 2.'abc123 - 黑车' 3.'绿色汽车'
我想创建一个SQL代码:
在此案例之后评估数据并使用另一个案例来查找关键词以使用通用术语进行报告。
结果
RED CAR
绿色汽车
SELECT *,
CASE ISNUMERIC(Mid(Trim(X), 1)) Then
UCASE(TRIM(MID(X, (CHARINDEX (X, " ", 1) +1)))))
ELSE X
END
CASE WHEN X LIKE '%RED%'
THEN 'RED CAR'
ELSE X LIKE '%BLACK%;
THEN 'BLACK CAR'
ELSE X LIKE '%GREEN%'
THEN 'GREEN CAR'
ELSE XY
END
FROM XTABLE`
答案 0 :(得分:0)
试试这个:
CASE
WHEN ISNUMERIC (Mid(Trim(X), 1)) THEN
UCASE(TRIM(MID(X, (CHARINDEX (X, " ", 1) +1)))))
ELSE
X
END
答案 1 :(得分:0)
如果不了解数据的具体情况以及您要完成的工作,那么几乎不可能准确地为您提供SQL示例。
也就是说,这是将大多数函数转换为SQL-Server等价函数;如果您可以查找SUBSTRING()
和CHARINDEX()
函数等项目,并根据您的要求调整示例,那么这应该可以帮助您入门。
SELECT
CASE
WHEN ISNUMERIC(SUBSTRING(LTRIM(RTRIM(X)), 1,1)) = 0
THEN UPPER(LTRIM(RTRIM(SUBSTRING(X, CHARINDEX(X, ' ')+1, LEN(X) - CHARINDEX(X, ' ')))))
ELSE 'X'
END
FROM MyTable