tcl wiki подробно описывает эту проблему и перечисляет три возможных решения:
(2) или (3) было бы предпочтительнее, однако решение не очевидно. Однако работающее решение доступно на unpythonic wiki :
from Tkinter import Text
from idlelib.WidgetRedirector import WidgetRedirector
class ReadOnlyText(Text):
def __init__(self, *args, **kwargs):
Text.__init__(self, *args, **kwargs)
self.redirector = WidgetRedirector(self)
self.insert = self.redirector.register("insert", lambda *args, **kw: "break")
self.delete = self.redirector.register("delete", lambda *args, **kw: "break")
Используйте пример:
Select Case When @PaidThisMonth < @OwedPast
Then @PaidThisMonth Else @OwedPast End PaidForPast
Так как значение UDF
CREATE FUNCTION Minimum
(@Param1 Integer, @Param2 Integer)
Returns Table As
Return(Select Case When @Param1 < @Param2
Then @Param1 Else @Param2 End MinValue)
Использование:
Select MinValue as PaidforPast
From dbo.Minimum(@PaidThisMonth, @OwedPast)
ДОБАВЛЕНИЕ: Наверное, так будет лучше, если при обращении только к двум возможным значениям, если их больше двух, рассмотрим ответ Крейга с помощью пункта Values
.Используйте утверждение CASE.
Пример B на этой странице должен быть близок к тому, что вы пытаетесь сделать:
http://msdn.microsoft.com/en-us/library/ms181765.aspx
Вот код со страницы:
USE AdventureWorks; GO ВЫБЕРИТЕ Номер продукта, название, "Диапазон цен" = CASE КОГДА Цена в списке = 0 ТЕН 'Mfg item - не для перепродажи'. КОГДА Цена по списку < 50 ТИН 'Меньше $50' КОГДА Цена по списку >= 50 и Цена по списку < 250 ТЕН 'Меньше $250' КОГДА Цена по списку >= 250 и Цена по списку < 1000 ТЕН 'Меньше 1000' ПИТАНИЕ "Более 1000 долларов КОНЕЦ FROM Производство. Продукт ЗАКАЗКА по номеру продукта ; GO