我有一个表,其中用户输入名称,dob等,我有一个User_Name列,我想从其他列自动填充。
例如输入是:姓名 - John Doe,DOB - 01/01/1900
我希望User_Name
列自动填充johndoe01011900
(我已经有了连接列部分的算法来实现所需的结果)
一旦用户完成输入所有目标列,我只需要知道如何(SQL,Trigger)填充User_Name
列。如果用户跳过并且没有按顺序输入数据怎么办?当然,所需的列是(非空)。
答案 0 :(得分:1)
这应该这样做:
您可以使用计算字段进行以下计算:
LOWER(REPLACE(Name, ' ', ''))+CONVERT( VARCHAR(10), DateOfBirth, 112))
在下面的示例中,我使用了临时表,但对于常规表也是如此。
示例:
CREATE TABLE #temp(Name VARCHAR(100)
, DateOfBirth DATE
, CalcField AS LOWER(REPLACE(Name, ' ', ''))+CONVERT( VARCHAR(10), DateOfBirth, 112));
INSERT INTO #temp(Name
, DateOfBirth)
VALUES
('John Doe'
, '01/01/1900');
SELECT *
FROM #temp;
结果: