Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server Select语句中愚蠢的TSQL提问(N)个字符_Sql Server_Tsql - Fatal编程技术网

Sql server Select语句中愚蠢的TSQL提问(N)个字符

Sql server Select语句中愚蠢的TSQL提问(N)个字符,sql-server,tsql,Sql Server,Tsql,我有一个select语句,希望从字段中提取100个字符。有没有一个简单的方法可以做到这一点 下面是一些伪代码 Select substring(0, 100, longField) from myTable 您的伪代码非常接近 select substring(longField, 0, 100) from myTable (仅供参考) SQL子字符串:: substring(expression, starting_pos, length) 您的伪代码非常接近 select substr

我有一个select语句,希望从字段中提取100个字符。有没有一个简单的方法可以做到这一点

下面是一些伪代码

Select substring(0, 100, longField)
from myTable

您的伪代码非常接近

select substring(longField, 0, 100)
from myTable
(仅供参考)

SQL子字符串::

substring(expression, starting_pos, length)

您的伪代码非常接近

select substring(longField, 0, 100)
from myTable
(仅供参考)

SQL子字符串::

substring(expression, starting_pos, length)
你明白了。使用该方法。这将适用于任何字符串/字符/二进制/图像数据类型

DECLARE @str varchar(1000);
SELECT @str = 'foobar-booz-baz-cowboys';

SELECT SUBSTRING (@str, 0, 10);   
-- returns foobar-boo

--from a table:  
SELECT SUBSTRING(CustomerName,0,100)
FROM   MyTable;
你明白了。使用该方法。这将适用于任何字符串/字符/二进制/图像数据类型

DECLARE @str varchar(1000);
SELECT @str = 'foobar-booz-baz-cowboys';

SELECT SUBSTRING (@str, 0, 10);   
-- returns foobar-boo

--from a table:  
SELECT SUBSTRING(CustomerName,0,100)
FROM   MyTable;

最简单的方法是使用:

SELECT
    LEFT(longField,100) AS longField, ...
    FROM myTable
    WHERE...

最简单的方法是使用:

SELECT
    LEFT(longField,100) AS longField, ...
    FROM myTable
    WHERE...

@山姆:对不起,你错了。两者都可以编译。我只包括了2005年向后兼容的两个声明。通常(2008年+)是
声明@str varchar(1000)=“foobar booz baz cowboys”抱歉,我不知道。@Sam DeHaan:您可能还想阅读关于变量赋值的
SET
vs
SELECT
的文章。当您不能使用内联初始化(2K8+)时,使用
SELECT
几乎总是更好。@Sam:对不起,您不正确。两者都可以编译。我只包括了2005年向后兼容的两个声明。通常(2008年+)是
声明@str varchar(1000)=“foobar booz baz cowboys”抱歉,我不知道。@Sam DeHaan:您可能还想阅读关于变量赋值的
SET
vs
SELECT
的文章。当您无法使用内联初始化(2K8+)时,使用
选择
几乎总是更好。位置从1开始编号,而不是从0开始编号。0可以工作,但是,如果我没有弄错的话(目前无法验证),使用0您将减少一个比指定长度小的字符。位置从1开始编号,而不是从0开始编号。0可以工作,但是,如果我没有弄错的话(目前无法验证),使用0将减少一个比指定长度小的字符。