- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我的任务是将一些 T-SQL 代码转换为 C 代码。编写我正在转换的代码的人很少甚至没有沉迷于代码礼仪。我之所以知道这一点,是因为完全没有评论、没有缩进,也没有开始/结束 block ,除非在语法上绝对必要(以及一些为了好的措施而任意抛出的部分)。
这引发了一些问题。我正在转换的代码基于 Metaphone 算法。我说“基于”是因为它有很多......“未记录的改进”使其与官方实现不同。因此,我不能只是去获取一些 Metaphone 实现,因为那样它实际上就不是“正确”的翻译。
所以这是问题的根源:
if @str1='d'
if substring(@str,@cnt,3) in ('dge','dgy','dgi')
set @Result=@Result + 'j'
else
set @Result=@Result + 't'
根据 Metaphone 的工作原理,我很确定它们的意思是:
if @str1='d'
if substring(@str,@cnt,3) in ('dge','dgy','dgi')
set @Result=@Result + 'j'
else
set @Result=@Result + 't'
但我不确定它是否真的被解释为:
if @str1='d'
if substring(@str,@cnt,3) in ('dge','dgy','dgi')
set @Result=@Result + 'j'
else
set @Result=@Result + 't'
这个小片段没什么大不了的,但就在它之后,有一个部分包含五个“if”语句和一个“else”语句,并且没有开始/结束 block 来明确安排它们。如果我可以实际运行代码来测试和查看,这一切都不是什么大问题,但遗憾的是,我没有测试它的环境,也没有以前使用代码的任何输出。
tl;dr: 你们中的任何一个 T-SQL 专家都知道上面两个语句中的哪一个将被解释为以及它们在 T 中的 shift/reduce 冲突的规则是什么-SQL? (附加到第一个“if”语句,附加到最后一个“if”语句,随机选择一个?)
编辑:这是另一个有趣的几行。
if @str1='t'
if substring(@str,@cnt,3) in ('tia','tio')
set @Result=@Result + 'x'
else
if @str2='th'
set @Result=@Result + '0'
else
if substring(@str,@cnt,3) <> 'tch'
set @Result=@Result + 't'
EDIT2: 好吧,如果我没看错这些答案,那就意味着上面的内容实际上是
if @str1='t'
if substring(@str,@cnt,3) in ('tia','tio')
set @Result=@Result + 'x'
else
if @str2='th'
set @Result=@Result + '0'
else
if substring(@str,@cnt,3) <> 'tch'
set @Result=@Result + 't'
最佳答案
这里有一些东西应该可以帮助你
DECLARE @testvar INT;
DECLARE @testvar2 INT;
SET @testvar = 1;
SET @testvar2 = 1;
IF @testvar = 1
IF @testvar2 = 1
SELECT 'Got to 1';
ELSE
SELECT 'Got to 2';
如果 testvar
和 testvar2
都是 1,它输出“Got to 1”。
如果 testvar=1
和 testvar2=2
,它输出“Got to 2”。
如果testvar=2
,则没有输出。所以 else
与最近的 if
关于sql - T-SQL 中的悬空 "else"分辨率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7851514/
我遵循了 V. Romeo 关于实体管理的教程(在 GitHub 和 Youtube 上)。 然后我尝试重写类 CEntity、CComponent 和测试 CPosition(主要来自 Romeo
为什么下面的代码中有悬空引用?我认为对 const 的引用总是将临时对象的生命周期延长到它们的范围。 boost::filesystem::recursive_directory_iterator i
我有一个多线程应用程序,将传入消息发布到 rabbitmq 交换。使用 rabbitmq java 客户端,我在应用程序启动时创建了一个 rabbitmq 连接,并在我的所有线程中共享它。每个线程都会
我有一个 Git 存储库,其中有大量提交不在特定分支下,我可以 git show 它们,但是当我尝试列出包含它们的分支时,它没有返回任何内容。 我认为这是悬空提交/树问题(由于 -D 分支),所以我修
我是 Linux 的新手,并且继承了保持我们的单一 Linux 服务器运行的职责。这是我们的SVN服务器,所以比较重要。 原来在我之前维护它的人有一个 cron 任务,当有太多 svnserve 进程
我是一名优秀的程序员,十分优秀!