[英]Auto generate initials when application inserts value in to a SQL Server table
當應用程序將值插入SQL Server表時,我正在尋找一種從first,last和MI列自動生成首字母的方法。 我在考慮使用計算列,但我不確定這是否是這種情況下的最佳方法。 該腳本必須查看現有的首字母列,並以某種方式使新值具有唯一性。 當值已經存在時,也許最后粘貼X(當X已經使用時為XX,之后使用XXX等等)。
任何幫助將不勝感激。 TY
您可以將默認約束添加到現有的initial
列作為Default Left(FirstName,1) + Left(LastName,1)
來實現此目的。
由於您尚未提供任何詳細信息,因此您必須弄清楚如何通過以下方式進行分區和排序:....
select all_colmuns , case when max( (Left(FirstName,1) + Left (LastName,1))
over(PARTITION BY all_columns
ORDER BY id_primary_key ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) =
(Left(FirstName,1) + Left(LastName,1)) then
(Left(FirstName,1) + Left(LastName,1)) + 'X'
else (Left(FirstName,1) + Left(LastName,1)) end as intials
from your_table
select b.*, case when rn > 1 then intials_1 + replicate ('X' , rn-1)
else intials_1 end as intials_final
from
( select a.all_columns ,
row_number () over (partition by intials_1 order by intials_1) as rn
from
(select all_columns ,Left(FirstName,1) + Left(LastName,1) as intials_1
from your_tbl )a )b
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.