Sql 如何动态更改视图中列的大小

Sql 如何动态更改视图中列的大小,sql,sql-server,Sql,Sql Server,问题是,我有一个Employee表,其中有一个字段employeeAddress(varchar(200)),我正在SQL Server中创建一个视图EmployeeView,我想将其更改为employeeAddress(varchar(50)),这意味着我只想显示employeeAddress列的50个字符,然后用“…”连接 例如:-新德里(假设它有100个字符) 我想把它改成EmployeeView NewDel(假设是50个字符),那么它应该是“NewDel…”您可以试试这个 create

问题是,我有一个Employee表,其中有一个字段employeeAddress(varchar(200)),我正在SQL Server中创建一个视图EmployeeView,我想将其更改为employeeAddress(varchar(50)),这意味着我只想显示employeeAddress列的50个字符,然后用“…”连接

例如:-新德里(假设它有100个字符) 我想把它改成EmployeeView

NewDel(假设是50个字符),那么它应该是“NewDel…”

您可以试试这个

create view DemoView as select name=SUBSTRING(name,1,50)+'...' from tableName;

大多数现有答案似乎缺少条件省略的必要性:

CREATE VIEW dbo.EmployeeView
WITH SCHEMABINDING
AS
    SELECT
        /* Other Columns */
        CASE
          WHEN LEN(EmployeeAddress) > 50
            THEN SUBSTRING(EmployeeAddress,1,50) + '...'
          ELSE EmployeeAddress
        END as EmployeeAddress
    FROM
        dbo.Employee

这是一个奇怪的要求。你为什么要这么做?
CREATE VIEW dbo.EmployeeView
WITH SCHEMABINDING
AS
    SELECT
        /* Other Columns */
        CASE
          WHEN LEN(EmployeeAddress) > 50
            THEN SUBSTRING(EmployeeAddress,1,50) + '...'
          ELSE EmployeeAddress
        END as EmployeeAddress
    FROM
        dbo.Employee