sql-server - 如何在sql server中自动连接三个字符串前两个字符

标签 sql-server stored-procedures

I have three columns in a table like name,village,state.
Name='Samba Siva'
Village='Kodur'
State='Andra pradesh'

我想串联三列,例如第一列的前两个字符和第二列的第一个字符以及第三列的第一个字符和当前年份的最后两位数字。

我已经尝试过这样的

select right(replace(name,2)+Cast(cast(coalesce(max(village),0) as varchar) as varchar),2) customercode
from(select top 1 customercode from K_FS_DistributorDetails order by customercode)r;

但它不起作用。即:我想要像这样的输出 代码='SAKOA14'。 这里 14 是当前年份的最后两位数字。 请告诉我如何编写查询请帮助我......

最佳答案

您正在寻找这样的东西吗?

SELECT TOP 1 UPPER(LEFT(Name, 2) + LEFT(Village, 2) + LEFT(State, 1) + CONVERT(VARCHAR, YEAR(GETDATE()) % 100)) code
  FROM K_FS_DistributorDetails
 ORDER BY customercode DESC

输出:

|    CODE |
|---------|
| SAKOA14 |

这里是SQLFiddle 演示

关于sql-server - 如何在sql server中自动连接三个字符串前两个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24709581/

相关文章:

sql - 使用递归 CTE 处理日期逻辑

sql-server - 如何使用 DBeaver 创建 SQL Server 存储过程?

sql - "Select Top 10, then Join Tables",而不是 "Select Top 10 from Joined Tables"

mysql - Node.js 中的存储过程有时不返回值

sql - 如何根据表中的 IP 地址列表验证用户的 IP 地址?

c# - 从存储过程中获取插入/更新/删除的行数 - Linq to SQL

.net - 使用 vb.net 从 Sql 数据库插入、更新和删除数据?

sql - SELECT 中的上限字段值

sql-server - 在运行时连接 SQL 2008

mysql - MySql 存储过程中的此 Delete 语句不起作用