簡體   English   中英

應用程序將值插入SQL Server表時自動生成首字母

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM