回答:
長い文字列の数文字だけを返したい場合は、次のように使用できます。
select
left(col, 15) + '...' col
from yourtable
SQL Fiddle with Demoを参照してください。
これは文字列の最初の15文字を返し、...
それを最後に連結します。
15未満の文字列が取得されないことを確認したい場合は...
、次を使用できます。
select
case
when len(col)>=15
then left(col, 15) + '...'
else col end col
from yourtable
...
適用されない場合は追加されます
使用できます
LEFT(column, length)
または
SUBSTRING(column, start index, length)
Cast()オペレーションを使用することもできます。
Declare @name varchar(100);
set @name='....';
Select Cast(@name as varchar(10)) as new_name
以下を使用することもできます。iifはcaseステートメントを回避し、必要な場合にのみ省略記号を追加し(SQL Server 2012以降でのみ有効)、caseステートメントはよりANSI準拠です(ただし、より詳細です)。
SELECT
col, LEN(col),
col2, LEN(col2),
col3, LEN(col3) FROM (
SELECT
col,
LEFT(x.col, 15) + (IIF(len(x.col) > 15, '...', '')) AS col2,
LEFT(x.col, 15) + (CASE WHEN len(x.col) > 15 THEN '...' ELSE '' END) AS col3
from (
select 'this is a long string. One that is longer than 15 characters' as col
UNION
SELECT 'short string' AS col
UNION
SELECT 'string==15 char' AS col
UNION
SELECT NULL AS col
UNION
SELECT '' AS col
) x
) y