我们有一个表格,其中有一个名为 fullname 的列,格式为“Lastname, Firstname”
我在表中添加了新列,以便我们可以将姓氏和名字分开,但我不知道如何去做。下面的代码是我使用的,但“listFirst 不是公认的内置函数名称。”
<cfquery name="splitname" datasource="dsn">
UPDATE dbo.employees
SET
lastname = listFirst(fullname, ","),
firstname = listRest(fullname, ", ")
</cfquery>
请指教。谢谢你。
最佳答案
一种简单的方法(这不是最好的方法。但它看起来是一次性的。所以应该没问题。)是选择行作为单独的查询并在循环中更新每一行。在将它们传递给查询之前,您还需要评估列表函数。还可以使用 <cfqueryparam>
使字符串安全地进行查询。
<cfquery name="splitname" datasource="dsn">
SELECT empID, fullname
FROM dbo.employees
</cfquery>
<cfloop query="splitname">
<cfquery datasource="dsn">
UPDATE dbo.employees
SET
lastname = <cfqueryparam value="#trim(listFirst(splitname.fullname, ","))#" cfsqltype="varchar">,
firstname = <cfqueryparam value="#trim(listlast(splitname.fullname, ","))#" cfsqltype="varchar">
WHERE empID = <cfqueryparam value="#splitname.empID#" cfsqltype="varchar">
</cfquery>
</cfloop>
关于sql-server - 如何将 "Lastname, Firstname"数据拆分为单独的姓氏和名字列?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53890237/