我目前正在使用2张桌子:一张是直播,一张是第一阶段。上面的代码使用临时表作为源更新实时表中的值。如果舞台表中的行已经存在于实时表和其他一些简单标准中,它只会更新“firstname”列中的值。
Update LiveTable
SET LiveTable.firstname = TestTable.firstname
FROM TestTable
WHERE EXISTS (SELECT 1 FROM LiveTable WHERE LiveTable.userid = TestTable.userid)
AND TestTable.firstname IS NOT NULL
AND LEN(TestTable.firstname) > len(LiveTable.firstname);
以上代码可以完成工作,但需要相当长的时间。我想知道是否有更快的方法来做到这一点。
我尝试创建FUNCTION来做同样的事情,但却无法让它发挥作用。
答案 0 :(得分:1)
使用两个表之间的连接
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<div id="left-menu">
<span class="glyphicon"></span>
<div id="map-menu" class="test">
<nav class="menu_content">
<ul>
<li>Link</li>
<li>Link</li>
<li>Link</li>
<li>Link</li>
</ul>
</nav>
</div>
</div>
实际上并不需要条件Update LiveTable
SET LiveTable.firstname = TestTable.firstname
FROM TestTable
WHERE LiveTable.userid = TestTable.userid
AND TestTable.firstname IS NOT NULL
AND length(TestTable.firstname) > len(LiveTable.firstname);
,因为TestTable.firstname IS NOT NULL
会过滤掉length(TestTable.firstname) > len(LiveTable.firstname)
为空的行。它应该是firstname
而不是length()
。