【问题标题】:How can I get full entry from a column from on 10 characters given when the actual entry contains 20 characters and the field is in varchar? [closed]当实际条目包含 20 个字符并且该字段为 varchar 时,如何从给出的 10 个字符的列中获取完整条目? [关闭]
【发布时间】:2012-12-12 09:23:34
【问题描述】:

给定的值是这样的

4213076600

我需要使用 select 从表中获取这个 89013106904213076600

我知道我可以通过使用 like 函数得到它,但给定的值大约是 100

我使用的查询是

select left(name, 50)
from production.product
where left(name, 50) in ('ring', 'heel')
order by productid;

请相应更改

【问题讨论】:

  • 您的 CAPS LOCK 卡住了吗?此外,您的问题缺少:1)信息 2)尊重在这里回答的人
  • @Daniel Hilgarth:SELECT "SORRY, I'M TYPING SQL HERE"(前几天有人真的想把它拉到我身上)
  • 请不要使用 CAPS LOCK Faizan。这是愤怒的标志。你不知道吗?
  • 不用喊了。请编辑您的问题。使用全部大写字母被认为是粗鲁和引人注目的。
  • @Kuya John:作为一个拥有 45k 代表的用户,您有没有想过,除了格式化代码块之外,您还可以更改这篇文章的更多内容?

标签: sql sql-server-2008


【解决方案1】:

只需更改您实际选择的内容:使用SELECT NAME 而不是SELECT LEFT(NAME, 50)

SELECT NAME
FROM Production.Product
WHERE LEFT(Name, 4) IN ('ring','heel')
ORDER BY ProductID;

【讨论】:

  • 结果显示为空列
  • 这是因为只有当IN 子句中的所有值都具有在LEFT 函数中指定的相同长度时,这才有效。在示例语句中,您需要使用LEFT(NAME, 4) 而不是LEFT(NAME, 50)。但是,请注意,一旦IN 子句中存在长度不同的字符串,这将停止正常工作——它们的行将永远不会被返回。
  • 但是,如果我的信息较少,但必须像我提到的问题中那样获得完整的数字,该怎么办
  • @faizan:我不知道你现在在问什么。 SELECT NAME 将返回完整的列内容。
  • 感谢您的努力,但我得到了答案
猜你喜欢
  • 2017-07-04
  • 2017-12-07
  • 2017-07-14
  • 1970-01-01
  • 2019-02-19
  • 2014-04-06
  • 1970-01-01
  • 2022-01-22
  • 1970-01-01
相关资源
最近更新 更多