Crystal reports 基本语法vs SQL命令——公式水晶报表
我试图将此语句转换为SQL命令——用于测试和学习目的 基本语法公式中的代码为Crystal reports 基本语法vs SQL命令——公式水晶报表,crystal-reports,sqlcommand,Crystal Reports,Sqlcommand,我试图将此语句转换为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(Tri
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字段看起来像多种类型:
1. 'zzabc123-红色汽车“2. 'abc123-黑色汽车的 3. '绿色汽车 我想创建一个SQL代码,其中:
- 检查X(zzabc123-红色汽车),查看前部是否有一个zzabc123
- 如果是数字的,则剪下前面的部分-使用charindex找到空间的起点,只抓取“红色汽车”
- 如果不是数字,只需清理数据部分
- 终局
- 在该案例之后,评估数据,并使用另一个案例查找关键字,以使用通用术语进行报告
- 结果
- 红色汽车
- 黑车
- 绿色汽车
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`
CASE
WHEN ISNUMERIC (Mid(Trim(X), 1)) THEN
UCASE(TRIM(MID(X, (CHARINDEX (X, " ", 1) +1)))))
ELSE
X
END
如果不知道数据的具体情况以及您要完成的任务,几乎不可能准确地向您提供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
你能发布一些样本记录,并解释你的案例陈述的条件吗?在我看来,你是想检查一个字段是否是数字,如果你想选择空格位置的所有内容。谢谢你,我用一个确切的例子编辑了我的帖子,说明了我要完成的工作@阿希金看起来不错!出于好奇,两人之间是否总是会有“空格-破折号-空格”的关系?@AHiggins,目前看来,进口的凌乱型飞机似乎总是这样。我对中间代码中的+1有些迷惑,也不明白代码(以前)是如何知道只能在空格后抓取数据的?我创建了一个示例,如果它与这个示例仍然相同,请让我知道。